带有外部参数文件的 Dockerfile

hos*_*sso 2 docker dockerfile

我有 2 个 Dockerfile,它们具有公共参数 (ARG),这些参数被传递到实际命令 (RUN) 来构建映像。

是否可以提供一个带有参数的外部文件,以便当我需要更新其中一个文件时,我不需要触及两个 Dockerfile?

BMi*_*tch 5

AnARG被设计为从构建命令行进行修改,因此您可以运行:

docker build --build-arg VAR=value -t your_image .
Run Code Online (Sandbox Code Playgroud)

可以将其放置在 shell 脚本中以使其自动化,并将相同的参数传递给每个构建。

您还可以使用撰写文件,并且撰写文件可以使用环境变量或文件.env来设置撰写文件内部使用的变量,例如

build:
  context: ./your_app_dir
  dockerfile: Dockerfile
  args:
    VAR: ${VALUE}
Run Code Online (Sandbox Code Playgroud)

并且.env将包含:

VALUE=your_value
Run Code Online (Sandbox Code Playgroud)

有关撰写文件的更多详细信息,请参阅构建语法环境文件语法