2017-10-12 1 views
7

Tenir compte de la Dockerfile suivante:"Les lignes de continuation vides deviendront des erreurs" ... comment devrais-je commenter mon Dockerfile maintenant?

FROM alpine:edge 

EXPOSE \ 
# web portal 
8080 \ 
# backdoor 
8081 

Construit comme si:

docker build . 

Nous observons cette sortie:

Sending build context to Docker daemon 17.1TB 
Step 1/2 : FROM alpine:edge 
---> 7463224280b0 
Step 2/2 : EXPOSE 8080 8081 
---> Using cache 
---> 7953f8df04d9 
[WARNING]: Empty continuation line found in: 
    EXPOSE 8080 8081 
[WARNING]: Empty continuation lines will become errors in a future release. 
Successfully built 7953f8df04d9 

Ainsi, étant donné qu'il va bientôt devenir illégal de mettre des commentaires au milieu d'une section multi-ligne: quelle est la nouvelle façon recommandée de commenter les commandes multi-lignes?

Ceci est particulièrement important pour les commandes RUN, car nous sommes encouragés à réduire les couches d'image par && ensemble des commandes.


Je ne sais pas exactement quand cela a été introduit, mais je rencontre actuellement cette version:

docker --version 
Docker version 17.07.0-ce, build 8784753 

J'utilise bord Docker le flux de sortie, alors peut-être ce ne regardera pas encore familier si vous utilisez Docker stable.

+0

Est-ce que cela fonctionne avec la branche stable? – lifeisfoo

+0

Le mieux est de demander à l'équipe de dockers ce qu'ils projettent à ce sujet? Je suppose que vous pouvez terminer avec plusieurs exposer si vous voulez des commentaires –

Répondre

1

Vous pouvez interrompre les commandes RUN sur des lignes distinctes, puis utiliser la commande expérimentale (au moment de l'écriture *) --squash.


* Notez qu'il a été suggéré que multi-stage builds pourrait faire --squash redondante. Cela est activement discuté here, avec une proposition ouverte here.

+0

'--squash' signifie probablement que _all_ couches sont invalidées quand je fais un changement à la couche la plus récente. En général, je mets des choses lentes dans les premières couches, et des choses volatiles dans les couches plus tard. Je ne voudrais pas que mes builds incrémentaux aient à récupérer des dépendances à chaque fois, juste pour l'implémentation de commentaires. mais peut-être que les constructions multi-étapes fournissent une meilleure réponse; besoin de lire à ce sujet. – Birchlabs

5

17.07.0-ce a commencé à avertir sur les lignes de continuation vides. Toutefois, il a incorrectement traité les lignes de commentaire uniquement comme vides. Ceci est corrigé dans moby#35004 et inclus dans le 17.10.0-ce.