【发布时间】:2016-04-07 08:39:26
【问题描述】:
最近我们正在尝试找到一种通过环境变量将凭据注入到我们在容器中运行的基于 Spring 的应用程序的正确方法。
具体流程包括
- 一个引导 shell 脚本,docker CMD 作为入口点运行
- 在脚本中导出一堆凭据
- 在脚本文件末尾运行应用程序
通过这种方式,docker inspect、docker exec [container_id] env 或 bash 进入 docker 容器并运行 env 都不会看到这些环境变量,即。我们注入的引导脚本是不透明的。
所以问题是:对于这个解决方案,我们还应该考虑其他什么吗?有什么明显的毛病吗?
我们对 docker 世界还很陌生,所以这种关于通过 shell 脚本注入环境变量的行为从那以后就看不到了,是否有任何文档解释原因?我们还没有找到一个好的文档,但只是发现它以这种方式工作
附言。 docker 将来会改变这种行为吗?
提前致谢!
【问题讨论】:
-
脚本存放在哪里?主机上的文件?还是将其构建到图像中?能看到脚本源文件有问题吗?
-
脚本存储在镜像中,此外,我们使用了 HashiCorp Consul 和 Vault,因此脚本调用本地 Vault 命令从其他 Consul 容器中检索凭据,这一切都发生在容器运行时启动,即。图像中的脚本没有凭据
标签: docker docker-compose dockerfile