我有 2 个 Dockerfile,它们具有公共(public)参数 (ARG),这些参数被传递到实际命令 (RUN) 来构建镜像。
是否可以提供一个带有参数的外部文件,以便当我需要更新其中一个文件时,我不需要触及两个 Dockerfile?
最佳答案
ARG
旨在从构建命令行进行修改,因此您可以运行:
docker build --build-arg VAR=value -t your_image .
可以将其放置在 shell 脚本中以实现自动化,并将相同的参数传递给每个构建。
您还可以使用撰写文件,该撰写文件可以使用环境变量或 .env
文件来设置撰写文件内部使用的变量,例如
build:
context: ./your_app_dir
dockerfile: Dockerfile
args:
VAR: ${VALUE}
.env
将包含:
VALUE=your_value
有关撰写文件的更多详细信息,请参阅 the build syntax还有the environment file syntax .
关于带有外部参数文件的 Dockerfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42027380/