繁体   English   中英

如何在 Dockerfile 中发表评论?

[英]How do I make a comment in a Dockerfile?

我正在写一个 Dockerfile。 有没有办法在这个文件中发表评论?

Docker 是否有一个注释选项,可以忽略一行的其余部分?

您可以在一行的开头使用#来开始注释(允许在#之前使用空格):

# do some stuff
RUN apt-get update \
    # install some packages
    && apt-get install -y cron

字符串中间的#被传递给命令本身,例如:

RUN echo 'we are running some # of cool things'

正如其他人所提到的,注释用#引用并记录在此处 但是,与某些语言不同, #必须位于行的开头。 如果它们发生在线路的中途,它们将被解释为参数并可能导致意外行为。

# 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:\

第一行虽然看起来是注释,但它是一个解析器指令,用于将转义字符更改为反引号,以便COPYRUN命令可以在路径中使用反斜杠。 解析器指令还与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'

Dockerfile 注释以“#”开头,就像 Python 一样。 这是一个很好的例子( 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"] 

格式

这是Dockerfile:的格式Dockerfile:

我们可以使用#来评论目的#Comment例如

#FROM microsoft/aspnetcore
FROM microsoft/dotnet
COPY /publish /app
WORKDIR /app
ENTRYPOINT ["dotnet", "WebApp.dll"]

从上面的文件中,当我们构建 docker 时,它会跳过第一行并转到下一行,因为我们已经使用#对其进行了注释

Docker将以#开头的行视为注释,除非该行是有效的解析器指令。 一行中任何其他位置的#标记被视为参数。

示例代码:

 # this line is a comment RUN echo 'we are running some # of cool things'

输出:

 we are running some # of cool things
# this is comment
this isn't comment

是这样做的方法。 您可以将它放在行中的任何位置,后面的任何内容都将被忽略

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM