📜  Docker – ARG指令(1)

📅  最后修改于: 2023-12-03 15:14:46.227000             🧑  作者: Mango

Docker – ARG指令

在Docker中,ARG指令用于设置构建镜像时可以从外部传入的变量。它允许程序员在构建过程中动态地传递参数值,从而增加了镜像构建的灵活性和可重用性。

语法

ARG指令的语法如下:

ARG <variable_name>[=<default_value>]

其中,<variable_name>是变量名称,可由字母、数字和下划线组成,但必须以字母开头。<default_value>是可选的,默认值。

使用方法

ARG指令可以在Dockerfile中的任何位置使用,但通常建议在文件的开头定义所有的变量。可以使用$<variable_name>${<variable_name>}来引用这些变量。

下面是一个使用ARG指令的示例:

# 定义一个名为APP_VERSION的变量,默认值为1.0
ARG APP_VERSION=1.0

# 使用变量来设置镜像的标签
LABEL version=$APP_VERSION

# 打印变量值
RUN echo "当前应用程序版本:$APP_VERSION"

在上述示例中,我们定义了一个名为APP_VERSION的变量,并将其默认值设置为1.0。然后,我们使用该变量来设置镜像的标签,并在构建过程中打印出变量的值。

传递变量值

在构建镜像时,我们可以通过--build-arg <variable_name>=<value>参数来动态传递变量值。以下是一个示例:

docker build --build-arg APP_VERSION=2.0 -t myapp:2.0 .

在上述示例中,我们使用--build-arg参数将APP_VERSION的值设置为2.0,并将镜像标记为myapp:2.0

注意事项
  • ARG指令只在构建镜像的过程中有效,而不会在运行容器时保留这些变量。
  • 如果没有指定默认值,并且在构建过程中未传递变量值,则变量将为空。
  • ARG指令可以存在多个,每个指令定义一个单独的变量。

通过使用ARG指令,程序员可以根据需要自定义镜像的构建过程,轻松传递参数值,从而实现更高度的可配置性和可扩展性。