“空的延续线将成为错误”…我现在应该如何评论我的Dockerfile?

考虑下面的Dockerfile:

FROM alpine:edge EXPOSE \ # web portal 8080 \ # backdoor 8081 

build造像这样:

 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命令尤为重要,因为我们鼓励通过一起命令来减less图像层次。


不确定这是什么时候推出的,但我目前正在经历这个版本:

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

我使用的是Docker的边缘版本stream,所以如果你使用的是Docker stable的话,这可能还不是很熟悉。

17.07.0-ce开始警告空的延续线。 但是,它不正确地将只有注释的行视为空。 这是固定在moby#35004 ,并包含在17.10.0-ce 。

你可以将RUN命令分解成不同的行,然后使用实验(在写*时)– --squash命令。


*请注意,有人build议多阶段构build可能会造成冗余。 这里正在积极讨论这个问题 ,并在这里提出一个build议。