Format

Dockerfile书写格式

# 注释
INSTRUCTION arguments # 指令和参数

该指令不区分大小写。但是,惯例是将它们大写以便更容易地将它们与参数区分开。

Docker依次在Dockerfile中运行指令。 Dockerfile必须以FROM指令开头。它可能在解析器指令,注释和具有全局作用域的ARG之后。 FROM指令指定了将要构建的父镜像。在FROM之前只能有一个或多个ARG指令,这些指令声明了在Dockerfile FROM行中使用的参数。

Docker会将以开头的行视为注释,除非该行是有效的解析器指令。一行中其他任何地方的标记均被视为参数。这允许如下语句:

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

在执行Dockerfile指令之前会删除注释行,这意味着以下示例中的注释不会由执行echo命令shell处理,并且以下两个示例是等效的:

RUN echo hello \
# comment 在构建镜像时会被删除
world
RUN echo hello \
world

注释中不支持行继续符。

为了向后兼容,将忽略在注释(#)和指令(例如RUN)之前的前导空格。在这些情况下,不保留前导空格,因此以下示例是等效的:

       # this is a comment-line
    RUN echo hello
RUN echo world
# this is a comment-line
RUN echo hello
RUN echo world

但是请注意,指令参数中的空格(例如RUN之后的命令)被保留,因此以下示例使用指定的前导空格打印“ hello world”:
RUN echo "\
     hello\
     world"

Last updated