推荐答案
在 Dockerfile 中使用 ARG
指令的示例:
-- -------------------- ---- ------- - -------- --- -------------- - ------ ---- --------------- - --------- --- ------------ - ------ ------- -------- - ------ ---- - - --- ----
本题详细解读
1. ARG
指令的作用
ARG
指令用于在构建 Docker 镜像时定义构建参数。这些参数可以在构建过程中使用,并且可以通过 --build-arg
选项在构建时传递。
2. ARG
指令的语法
ARG
指令的基本语法如下:
ARG <name>[=<default value>]
<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
选项传递参数值:
docker build --build-arg VERSION=20.04 --build-arg APP_DIR=/myapp -t myimage .
在这个例子中,VERSION
参数被设置为 20.04
,APP_DIR
参数被设置为 /myapp
。