Docker构建参数

Kar*_*son 6 docker dockerfile

如何将参数传递给dockerfile?

让我们说我有dockerfile:

FROM    ubuntu:14.04

MAINTAINER Karl Morrison

sudo do-something-here myVarHere
Run Code Online (Sandbox Code Playgroud)

我想建立文件,例如:

docker build basickarl/my-image-example /directory/of/my/dockerfile "my string to be passed to myVarHere here!"
Run Code Online (Sandbox Code Playgroud)

man*_*lds 6

Docker有ARG你可以在这里使用

FROM    ubuntu:14.04

MAINTAINER Karl Morrison

ARG myVarHere

RUN do-something-here myVarHere
Run Code Online (Sandbox Code Playgroud)

然后构建使用--build-arg:

docker build --build-arg myVarHere=value
Run Code Online (Sandbox Code Playgroud)

  • 对于那些构建args有问题的人来说,上面的内容基本上是正确的,但args在RUN命令中作为环境变量被访问.您可以在[此处](https://docs.docker.com/engine/reference/commandline/build/#set-build-time-variables---build-arg)和[此处](https)上查看相关文档. ://docs.docker.com/engine/reference/builder/#environment-replacement).然后上面的RUN命令是:`RUN do-something-here $ myVarHere` (5认同)

jan*_*oth 2

我们有类似的要求,并提出了一个相对简单的脚本来完成这个任务:

我们创建一个名为 的文件dockerfile_template,在其中我们使用变量,就像您所描述的那样。该脚本在调用 之前获取该文件,执行字符串替换并将其复制到dockerfile(无 _template)docker build dockerfile

效果相当不错。对于未来的需求也具有很强的可扩展性。

更新

废掉那个。使用build-arg此处