web-dev-qa-db-fra.com

"Les lignes de continuation vides deviendront des erreurs"… comment devrais-je maintenant commenter mon Dockerfile?

Considérez le fichier Docker suivant:

FROM Alpine:Edge

EXPOSE \
# web portal
8080 \
# backdoor
8081

Construit comme tel:

docker build .

Nous observons une telle 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

Donc, étant donné qu'il sera bientôt illégal de mettre des commentaires au milieu d'une section multiligne: quelle est la nouvelle méthode recommandée pour commenter les commandes multilignes ?

Ceci est particulièrement important pour les commandes RUN, car nous sommes invités à réduire les couches d'image en &&ing en même temps.


Je ne sais pas exactement quand cela a été introduit, mais j'expérimente actuellement ceci dans la version:

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

J'utilise le flux de sortie Edge de Docker, alors peut-être que cela ne vous semblera pas encore familier si vous utilisez Docker stable.

16
Birchlabs

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

9
Tanner Sansbury

Vous pouvez diviser les commandes RUN en plusieurs lignes, puis utiliser la commande experimental (au moment de l'écriture *) --squash .


* notez qu'il a été suggéré que des versions multi-étapes pourraient rendre --squash redondant. Cela fait actuellement l'objet de discussions ici , avec une proposition ouverte ici .

1
dukedave