“空的延续线会变成错误”......我应该如何评论我的Dockerfile?

问题描述:

考虑以下Dockerfile:“空的延续线会变成错误”......我应该如何评论我的Dockerfile?

FROM alpine:edge 

EXPOSE \ 
# web portal 
8080 \ 
# backdoor 
8081 

内置就像这样:

docker build . 

我们观察到这样的输出:

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 

所以,因为它很快就会成为非法把意见在多线段中间:什么是新的推荐方式来评论多行命令

这对于RUN命令特别重要,因为我们鼓励将图像层一起减少命令。


不知道什么时候这个被引入,但目前我遇到这样的版本:

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

我使用的码头工人边缘发布流,所以也许这还没有看如果您使用Docker稳定,则很熟悉。

+0

它是否支持稳定分支? – lifeisfoo

+0

最好是问问码头团队他们计划的是什么?我假设你可能以多次曝光结束,如果你想要评论 –

您可以将RUN命令分解成单独的行,然后使用实验(在编写时*)--squash命令。


*注意,它被认为multi-stage builds可能使--squash多余的。目前正在积极讨论here,提案开放here

+0

'--squash'可能意味着,当我对最新层进行更改时,_all_图层会失效。通常我会在早期阶段放慢速度,在晚期阶段放慢速度。我不希望每次增量构建必须重新获取依赖关系,只是为了实现注释。但也许多阶段构建提供了更好的答案;需要阅读它。 – Birchlabs

17.07.0-ce开始对空的延续线发出警告。但是,它不正确地将仅限注释的行视为空。这在moby#35004中被修复,并被包含在17.10.0-ce中。