Nil*_*dré 6 environment-variables docker dockerfile
我有一个容器映像,需要设置环境变量才能运行。但如果使用 运行-d,除非容器受到监视,否则运行容器的人不会注意到缺少某些内容。有没有一种方法可以docker [container] run在启动容器之前检查环境变量是否已提供给容器。
在分离模式下,无法在运行时打印需要 env 的消息-d,但您可以尝试解决方法:
Dockerfile
FROM alpine
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
Run Code Online (Sandbox Code Playgroud)
入口点.sh
#!/bin/sh
echo "starting container $hostname"
if [ -z "$REQUIRED_ENV" ]; then
echo "Container failed to start, pls pass -e REQUIRED_ENV=sometest"
exit 1
fi
echo "starting container with $REQUIRED_ENV"
#your long-running command from CMD
exec "$@"
Run Code Online (Sandbox Code Playgroud)
所以当你跑步时
docker run -it --name envtest --rm env-test-image
Run Code Online (Sandbox Code Playgroud)
它将退出并显示消息
starting container
Container failed to start, pls pass -e REQUIRED_ENV=sometest
Run Code Online (Sandbox Code Playgroud)
分离模式的解决方法
docker run -it --name envtest -d --rm env-test-image && docker logs envtest
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4327 次 |
| 最近记录: |