我想在Dockerfile中设置多行环境变量。通过命令行工作如果我通过docker run所有环境都可以通过环境变量。CONFIG="port: 4466databases: prod: connector: mysql active: true host: 33.333.333.333 port: 3306 user: root password: pass"docker run --env CONFIG="$CONFIG" ubuntu:latest env | grep 'CONFIG'输出(仅一行,因为它解释为多行变量)CONFIG=port: 4466无法通过dockerfile工作Docker文件FROM ubuntu:latestENV CONFIG 'port: 4466\ndatabases:\n prod:\n connector: mysql\n active: true\n host: host\n port: 3306\n user: root\n password: pass'构建并运行Docker映像docker build -t multilinetest .docker run multilinetest env | grep 'CONFIG'输出CONFIG=port: 4466\ndatabases:\n prod:\n connector: mysql\n active: true\n host: host\n port: 3306\n user: root\n password: pass预期的两种情况都应存储相同的环境变量(我将此环境变量传递到需要多行字符串的第三方图像中)
2 回答
慕哥9229398
TA贡献1877条经验 获得超6个赞
通过将多行环境变量作为arg传递给docker build,我能够使它工作。
Docker文件
FROM ubuntu:latest
ARG CONFIG
ENV CONFIG $CONFIG
生成命令
CONFIG="port: 4466
databases:
prod:
connector: mysql
active: true
host: 33.333.333.333
port: 3306
user: root
password: pass"
docker build --build-arg CONFIG="$CONFIG" ubuntu:latest env | grep 'CONFIG'
隔江千里
TA贡献1906条经验 获得超10个赞
转义换行符可以正常工作。
Docker文件
ENV BUILD_DEPENDENCIES apt-utils \
curl \
libc-dev \
gcc \
gnupg2
输出
Step 8/48 : ENV BUILD_DEPENDENCIES apt-utils curl libc-dev gcc gnupg2
---> Running in 65b0ad105af4
- 2 回答
- 0 关注
- 1471 浏览
添加回答
举报
0/150
提交
取消