如何在 Dockerfile 中使用 ARG 指令?

推荐答案

在 Dockerfile 中使用 ARG 指令的示例:

-- -------------------- ---- -------
- --------
--- --------------

- ------
---- ---------------

- ---------
--- ------------

- ------
------- --------

- ------
---- - -
--- ----

本题详细解读

1. ARG 指令的作用

ARG 指令用于在构建 Docker 镜像时定义构建参数。这些参数可以在构建过程中使用,并且可以通过 --build-arg 选项在构建时传递。

2. ARG 指令的语法

ARG 指令的基本语法如下:

  • <name>:参数的名称。
  • <default value>:可选,参数的默认值。如果未提供默认值,且构建时未传递该参数,则其值为空。

3. 使用 ARG 指令的注意事项

  • ARG 指令定义的参数仅在构建过程中有效,不会在容器运行时存在。
  • 可以在 Dockerfile 中多次使用 ARG 指令,但每个参数只能定义一次。
  • 可以在 FROM 指令之前使用 ARG 指令,以便在 FROM 指令中使用该参数。

4. 示例解析

在推荐答案中:

  • ARG VERSION=latest 定义了一个名为 VERSION 的参数,默认值为 latest
  • FROM ubuntu:$VERSION 使用了 VERSION 参数来指定基础镜像的版本。
  • ARG APP_DIR=/app 定义了另一个参数 APP_DIR,默认值为 /app
  • WORKDIR $APP_DIR 使用了 APP_DIR 参数来设置工作目录。

5. 构建时传递参数

在构建镜像时,可以通过 --build-arg 选项传递参数值:

在这个例子中,VERSION 参数被设置为 20.04APP_DIR 参数被设置为 /myapp

纠错
反馈