【发布时间】:2019-12-20 14:46:05
【问题描述】:
我需要将RUN 命令的输出设置为容器构建后可用的环境变量:
...
RUN ...
GO111MODULE=on go get github.com/emersion/hydroxide/cmd/hydroxide && \
echo "the_password" | hydroxide auth the_username@protonmail.com > bridge_password.txt && \
BRIDGE_PASSWORD=`sed -n 's/Password: Bridge password: //p' bridge_password.txt` && \
hydroxide smtp
...
在上面,我需要 $BRIDGE_PASSWORD 在我的 NodeJS 项目中可用 (process.env.BRIDGE_PASSWORD)。我怎样才能做到这一点?
【问题讨论】:
-
在容器运行(即部署)时密码是否需要在容器中,还是仅在镜像构建期间需要?我建议不要将任何密码放入 docker 映像(它被提交到映像层,如果您将其放入存储库,它将可供所有人查看)并且只将它们传递到容器在运行时使用 `-e "BRIDGE_PASSWORD=
". -
嗯,我需要
BRIDGE_PASSWORD在容器运行时在容器内可用。获取密码的唯一方法是在构建时运行这些命令,否则我只需将其传入。
标签: docker docker-compose dockerfile containers