在Docker中打包一个可以在运行时configuration的应用程序
我已经打包了一个我一直在做的泊坞窗图像的Web应用程序。
我想能够启动一些configuration的图像,像这是使用的couchdb服务器的url等
什么是提供configuration的最佳方式? 我的应用程序依赖于envvariables我可以在运行时设置这些吗?
除了在docker run
期间设置环境variables(使用-e
/ --env
和--env-file
),您还可以find其他选项:
-
用
--link
将你的容器链接到(例如)你的couchdb服务器。 如果您的服务器也是一个容器(或者如果您使用大使容器到另一台服务器),这将工作。 链接容器将使您的脚本可以使用的一些环境variables(包括服务器IP和端口)可用。 这将工作,如果你只需要设置参考服务。 -
使用卷 。 Dockerfile中定义的卷可以映射到主机文件夹,因此您可以使用它们访问configuration文件。 这对于非常复杂的configuration非常有用。
-
扩展图像。 您可以根据您的原始和
ADD
自定义configuration文件或ENV
条目创build一个新的图像。 这是最不灵活的select,但在复杂的configuration中很有用,可以简化启动过程,特别是当configuration大部分是静态的(对于服务/主机名可能是个坏主意,但可以用于dev / production的不同configuration的框架)。 可以结合上面的任何一个。
看起来docker支持设置envvariables – 应该阅读手册!
docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash
- 在Docker中validationJupyter Notebook会导致无效的令牌
- docker – 撰写:链接选项不工作
- 澄清Mavenconfiguration文件和阶段
- 我configurationdocker桥,但现在容器中的networking不能工作的意志
- 如何使用Elastic Beanstalk多容器环境共享AWS EC2实例
- 如何在Google Compute Engine上正确运行Docker(自动重启)
- 未捕获错误:在Docker容器中找不到“Memcached”类
- 无法从Docker容器访问互联网
- 如何使用docker-compose.yml为elasticsearch.yaml文件设置network.publish_host