泊坞V1.9以上版本
如果您使用的码头工人V1.9或更高版本,这对于通过构建时间参数的支持是可能的。参数Dockerfile
由using the ARG statement声明。
ARG REQUIRED_ARGUMENT
ARG OPTIONAL_ARGUMENT=default_value
当你使用docker build
后真正建立你的形象,你可以作为docker docs描述通过标志--build-arg
传递参数。
$ docker build --build-arg REQUIRED_ARGUMENT=this-is-required .
请注意,这是不推荐使用编译时变量密码或秘密,如按键或凭证。
此外,构建时变量可能有great impact on caching。因此,应该非常小心地构建Dockerfile,以尽可能地利用缓存,并在其中加速构建过程。
编辑:“docker比v1.9更新” - 部分是在leedm777:s answer输入后添加的。
泊坞V1.9
如果您之前1.9使用泊坞版本之前,该ARG
/--build-arg
的做法是不可能的。在构建过程中无法解析此类信息,因此您必须将它们作为参数传递给docker run
命令。
Docker 图片随着时间的推移将保持一致,而容器可以被调整并被视为“丢弃过程”。
老办法解决这个问题是使用模板。这不是一个很好的解决方案,但是当时很少有可行的选择之一。 (来自this discussion的启示)。
- 保存在一个JSON或YAML文件
- 创建一个泊坞窗文件“模板”,其动态以后可以扩展
- 编写使用一些从配置数据创建一个Dockerfile脚本的所有动态数据模板库,你所熟悉的
您想要什么时候运行'。/ script/that/gets/var'? Docker文件用于构建时间。如果你想在容器启动时运行一些东西,只需创建一个脚本,该脚本运行'./ script/that/gets/var',然后是主命令。 – generalhenry
我希望它在构建时运行并创建将在运行时出现的环境变量。 – Evan