我正在写一个 Dockerfile。有没有办法在这个文件中发表评论?
Docker 是否有一个注释选项,它会占用一行的其余部分并忽略它?
原文由 kpie 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在写一个 Dockerfile。有没有办法在这个文件中发表评论?
Docker 是否有一个注释选项,它会占用一行的其余部分并忽略它?
原文由 kpie 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如其他人所提到的,注释用 #
引用,并在 此处记录。但是,与某些语言不同, #
必须位于行首。如果它们出现在该行的中途,它们将被解释为一个参数,并可能导致意外的行为。
# 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
和 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
原文由 BMitch 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
2 回答800 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
1 回答966 阅读
您可以在行首使用
#
开始 注释(允许在#
之前使用空格):#
在字符串中间的被传递给命令本身,例如: