2 votes

.dockerignore ne fonctionne pas sur le sous-répertoire... il se retrouve quand même dans l'image

En gros, j'ai une structure comme la suivante :

project/
  src/
     .unwantedsub/
  .dockerignore

Bien sûr, quand je construis l'image. unwantedsub/ se retrouve dans l'image.

J'ai essayé ce qui suit :

.unwantedsub
.unwantedsub/
*.unwantedsub/
src/.unwantedsub
src/.unwantedsub/
./src/.unwantedsub

Il apparaît toujours sur l'image. Rien d'autre n'est dans l'image .dockerignore . Je m'assure de détruire l'image et d'en créer une nouvelle, afin de ne pas avoir à regarder la même image. (J'ai fait cela plusieurs fois).

Ce qui marche, c'est de déplacer le .dockerignore dans ce répertoire et ensuite .unwantedsub travaux. J'espérais éviter un .dockerignore dans chaque sous-répertoire cependant.

Comment faire pour que ça marche ?

1voto

Ortomala Lokni Points 5613

En utilisant les éléments suivants .dockerignore :

src/.unwantedsub

fonctionne bien. J'ai fait un exemple complet et fonctionnel. Exécutez-le dans un répertoire vide.

$ mkdir -p src/.unwantedsub                                                                                                                                                                               
$ echo src/.unwantedsub > .dockerignore
$ echo FROM debian > Dockerfile
$ echo ADD . /data >> Dockerfile
$ docker build -t test  .
Sending build context to Docker daemon  4.096kB
Step 1/2 : From debian
 ---> de8b49d4b0b3
Step 2/2 : Add . /data
 ---> a15b1ddf86e4
Successfully built a15b1ddf86e4
Successfully tagged test:latest
$ docker run -it test:latest                                                                                        
root@b3c8ffc73b7f:/# ls -l data/src/
total 0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X