créer un contexte pour l’image de docker très grand

J’ai créé deux répertoires différents sur ma machine hôte alors que j’essaie de me familiariser avec Docker simplement pour garder mes fichiers Docker organisés. Mon fichier Dockerfile que je viens de lancer ressemble à ceci:

FROM crystal/centos MAINTAINER crystal ADD ./rpms/test.rpm ./rpms/ RUN yum -y --nogpgcheck localinstall /rpms/test.rpm 

Mon rpm actuel n’est que de 1 Go. Mais quand j’essaie de faire sudo docker build -t="crystal/test" . , J’envoie un contexte de construction au démon Docker 3.5 Go. Y a-t-il autre chose que je ne connais pas lorsque vous continuez à créer des images Docker? Est-ce que ma mémoire s’accumule lorsque je crée plus d’images dans mes autres répertoires sur mon ordinateur hôte?

Le client Docker envoie l’intégralité du “contexte de construction” au démon Docker. Ce contexte de construction (par défaut) correspond à l’intégralité du répertoire dans Dockerfile trouve le Dockerfile (donc, dans l’arborescence des rpms ).

Vous pouvez configurer un fichier .dockerignore pour que Docker ignore certains fichiers. Vous voudrez peut-être l’expérimenter.

Alternativement, vous pouvez déplacer votre dossier rpms un niveau de répertoire au-dessus de votre Dockerfile , et seulement test.rpm lien symbolique test.rpm dans le Dockerfile de Dockerfile .

Je l’ai corrigé en déplaçant mon Dockerfile et docker-compose.yml dans un sous-dossier et cela a fonctionné très bien. Apparemment, docker envoie le dossier actuel au démon et mon dossier contient 9 concerts.

Dans mon cas, c’est lorsque j’exécute avec des arguments -f incorrects – sans chemin vers le répertoire où se trouve Dockerfile

docker build --no-cache -t nginx5 -f /home/DF/Dockerfile /home/DF/ – right

docker build --no-cache -t nginx5 -f /home/DF/Dockerfile – faux

J’ai eu le même problème que FreeStyler. Cependant, je construisais à partir d’un répertoire un de mon contexte. Donc, les arguments -f étaient corrects, le contexte était incorrect.

 project | -------docker-dir 

Construire à partir de Docker-dir ce qui suit allait bien

 docker build -t br_base:0.1 . 

Construire à partir du répertoire Dock, le contexte de construction a changé. Par conséquent, je devais changer le contexte dans la commande. Le contexte est donné par le ‘.’ dans la commande ci-dessus.

La nouvelle commande du répertoire du projet doit être

 docker build -t br_base:0.1 ./base 

Le contexte ici est donné par le ‘./base’