首页 > 解决方案 > 未在 docker 文件中替换的 env 变量

问题描述

FROM alpine:3.11

COPY out/ /bin/

CMD ["command", "--flag1", "${HOST}", "--flag2", "${PORT}", "--flag3", "${AUTH_TOKEN}"]

这是使用的 docker 文件。我在通过 env 文件运行期间加载 env 变量。但是在运行command. 如果我将CMDand exec 覆盖到容器中,我可以看到环境。我在这里想念什么?

标签: dockerenvironment-variables

解决方案


您正在执行模式下运行 CMD。切换到shell模式,它会工作。至于要存在的环境变量,您需要一个外壳。更多阅读

你的例子:

CMD command --flag1 ${HOST} --flag2 ${PORT} --flag3 ${AUTH_TOKEN}

完整的通用示例:

Dockerfile:

FROM debian:stretch-slim
CMD echo ${env}

跑:

docker build .
docker run --rm -e env=hi <image id from build step>
hi

推荐阅读