【发布时间】:2017-09-18 00:35:17
【问题描述】:
我正在使用 Docker 17.04.0-ce,使用 docker-compose 1.12.0 构建 4845c56,在 Ubuntu 16.04.2 LTS 上构建 b31ff33。我只是想传递一个环境变量并从我在容器中运行的脚本中显示它。我是根据文档 https://docs.docker.com/compose/compose-file/#environment 执行此操作的。问题是变量没有传递给容器。
我的 docker-compose.yml 文件:
env-file-test:
build: .
dockerfile: Dockerfile
environment:
- DEMO_VAR
我的 Dockerfile:
FROM alpine
COPY docker-start.sh /
CMD ["/docker-start.sh"]
还有docker-start.sh 文件:
#!/bin/sh
echo "DEMO_VAR Var Passed in: $DEMO_VAR"
我尝试在当前终端会话中设置变量并将其传递给容器:
$ export DEMO_VAR=aabbdd
$ echo $DEMO_VAR
aabbdd
$ sudo docker-compose up
Starting envfiletest_env-file-test_1
Attaching to envfiletest_env-file-test_1
env-file-test_1 | DEMO_VAR Var Passed in:
envfiletest_env-file-test_1 exited with code 0
所以你可以看到变量DEMO_VAR是空的!
我也尝试在 docker-compose.yml 中像这样使用变量:DEMO_VAR=${DEMO_VAR},但是当我运行 sudo docker-compose up 时,我收到警告:“警告:未设置 DEMO_VAR 变量。默认为空白字符串。 ”。
我做错了什么?我应该怎么做才能将变量传递给容器?
【问题讨论】:
标签: docker docker-compose