448 votes

COPIE avec menu fixe mais avec exclusion

Dans un fichier Docker, j'ai

 COPY . .
 

Je veux exclure un répertoire entier, dans mon cas, le répertoire node_modules.

Quelque chose comme ça:

    COPY [all but **/node_modules/**] .
 

Est-ce possible avec Docker?

691voto

vith Points 1996

Créez le fichier .dockerignore dans votre répertoire contextuel de construction de docker (dans ce cas, il s'agit probablement d'un répertoire parent de node_modules) comportant une ligne:

 **/node_modules
 

bien que vous vouliez probablement juste:

 node_modules
 

Informations sur dockerignore: https://docs.docker.com/engine/reference/builder/#dockerignore-file

100voto

Alex Points 141

Pour ceux qui ne peuvent pas utiliser un fichier .dockerignore (par exemple, si vous avez besoin du fichier dans une copie mais pas dans une autre):

Oui, mais vous avez besoin de plusieurs instructions de copie. Plus précisément, vous avez besoin d'une COPIE pour chaque lettre du nom de fichier que vous souhaitez exclure.

 COPY [^n]*    # All files that don't start with 'n'
COPY n[^o]*   # All files that start with 'n', but not 'no'
COPY no[^d]*  # All files that start with 'no', but not 'nod'
 

Continuez jusqu'à ce que vous ayez le nom de fichier complet ou simplement le préfixe dont vous êtes raisonnablement sûr qu'il ne contiendra aucun autre fichier.

6voto

Paras Patidar Points 21

L'ajout d' .dockerignore fonctionne pour moi. Un point supplémentaire à Ceux qui tentent cette solution sur Windows , windows ne vous permettra pas de créer .dockerignore fichier (que ce ne soit pas par défaut permet la création de fichier de départ .)

le truc qui est mentionné ici : https://www.hanselman.com/blog/HowToCreateAFileWithADotPrefixInWindowsExplorer.aspx

ce qui est d'inclure une fin point également, comme : .dockerignore. et appuyez sur entrée ( à condition que vous ayez activé l'option afficher les options de prolongation d'options des dossiers )

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