docker - 未在 docker 文件中替换的 env 变量
问题描述
FROM alpine:3.11
COPY out/ /bin/
CMD ["command", "--flag1", "${HOST}", "--flag2", "${PORT}", "--flag3", "${AUTH_TOKEN}"]
这是使用的 docker 文件。我在通过 env 文件运行期间加载 env 变量。但是在运行command
. 如果我将CMD
and exec 覆盖到容器中,我可以看到环境。我在这里想念什么?
解决方案
您正在执行模式下运行 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
推荐阅读
- javascript - 有没有办法减少复杂封闭 SVG 路径中的坐标数?
- angular8 - 如何通过单击具有 RouterLink 仅适用于移动设备的元素来关闭 Material SideNav
- orm - TypeORM getRepository.find() 不包括外键字段
- android - 修复嵌套recyclerview android中滚动条的高度
- java - 当我添加芯片组时,程序不起作用
- shell - Ansible:如何使用 shell 输出运行命令
- ios - 使用 CocoaMQTT 连接到我的 mqtt 代理时出现问题
- react-native - React Native 应用程序在启动时卡在白屏上
- javascript - 如何提交带有数组的html?
- reactjs - 图表专家数据系列更改后如何让图表专家图例重绘