Answers:
正如其他人提到的那样,注释用引用,#
并在此处记录。但是,与某些语言不同,#
必须在行的开头。如果它们出现在行的途中,它们将被解释为参数,并可能导致意外行为。
# This is a comment
COPY test_dir target_dir # This is not a comment, it is an argument to COPY
RUN echo hello world # This is an argument to RUN but the shell may ignore it
还应注意,解析器指令最近已添加到Dockerfile中,其语法与注释相同。它们需要出现在文件顶部,之前没有其他注释或命令。最初,添加此指令是为了更改转义符以支持Windows:
# escape=`
FROM microsoft/nanoserver
COPY testfile.txt c:\
RUN dir c:\
第一行似乎是一条注释,它是一个解析器指令,用于将转义符更改为反引号,以便COPY
and RUN
命令可以在路径中使用反斜杠。BuildKit还可以使用解析器指令来用一行更改前端解析器syntax
。有关如何在实践中使用它的更多详细信息,请参见实验语法。
使用多行命令时,注释行将被忽略,但是您需要分别注释掉每行:
$ cat Dockerfile
FROM busybox:latest
RUN echo first command \
# && echo second command disabled \
&& echo third command
$ docker build .
Sending build context to Docker daemon 23.04kB
Step 1/2 : FROM busybox:latest
---> 59788edf1f3e
Step 2/2 : RUN echo first command && echo third command
---> Running in b1177e7b563d
first command
third command
Removing intermediate container b1177e7b563d
---> 5442cfe321ac
Successfully built 5442cfe321ac
#
第一行开头还是仅以第一行开头?实验表明是前者。该答案也可以进行更新以涵盖该问题(使其更加出色)。
使用#
语法进行注释
来自:https : //docs.docker.com/engine/reference/builder/#format
# My comment here
RUN echo 'we are running some cool things'
ADD . $foo # ADD . /bar
就像Python一样,Dockerfile注释以'#'开头。这是一个很好的示例(kstaken / dockerfile-examples):
# Install a more-up-to date version of MongoDB than what is included in the default Ubuntu repositories.
FROM ubuntu
MAINTAINER Kimbro Staken
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list
RUN apt-get update
RUN apt-get -y install apt-utils
RUN apt-get -y install mongodb-10gen
#RUN echo "" >> /etc/mongodb.conf
CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"]
MAINTAINER
已弃用,现在建议使用标签:LABEL maintainer="foo@abc.com"
这是格式 Dockerfile:
我们可以使用#
为目的的注释#Comment
,例如
#FROM microsoft/aspnetcore
FROM microsoft/dotnet
COPY /publish /app
WORKDIR /app
ENTRYPOINT ["dotnet", "WebApp.dll"]
在构建docker时,从上面的文件中,它跳过了第一行,转到了下一行,因为我们已经使用注释了它 #