Cod*_*ern 6 environment-variables docker dockerfile devops
我希望能够在 Dockerfile 内将命令的输出分配给 ARG 变量。例如:
ARG myvar=$(echo 'hello')
Run Code Online (Sandbox Code Playgroud)
但是,这给了我语法错误
ERROR: Dockerfile parse error line 68: ARG requires exactly one argument
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
虽然不是问题的直接答案,但我解决这个问题的方法是创建一个负责启动 Dockerfile 构建的 bash 脚本。该脚本运行我需要的命令,然后将其作为参数传递给 Dockerfile。例子:
#!/usr/bin/env bash
MY_VAR=$(echo 'hello')
docker build --build-arg MY_VAR=${MY_VAR} -t myapp .
Run Code Online (Sandbox Code Playgroud)
然后 Dockerfile 得到它:
ARG MY_VAR
# MY_VAR now equals 'hello'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |