Mar*_*ell 5 docker docker-compose
我想使用应用程序创建者提供的 docker-compose 文件在生产环境(单主机)中部署 docker 应用程序。基于 docker 的解决方案被用作整体二进制安装程序的直接替代品。
该应用程序附带默认配置,但期望管理员希望应用适度的配置更改。
似乎有几种方法可以将自定义配置应用于文件中定义的服务docker-compose.yml,但我不确定哪种方法被认为是最佳实践。我目前正在考虑的两个是:
将配置烘焙到新映像中。在这里,我将为 docker-compose 文件中定义的每个服务添加一个构建步骤,并创建一个最小的构建步骤Dockerfile,用于COPY将映像中的现有配置文件替换为我的自定义配置文件。使用sedand echoinCMD语句也可用于更改内联配置,而无需批量替换文件。
使用绑定安装并将配置存储在主机上。在这种情况下,我会将所有自定义配置文件存储在主机上的一个目录中,并在volumesdocker-compose 文件中的每个服务的参数中定义绑定安装。
第一个选项对我来说似乎是最干净的,因为应用程序是完全独立的,但是如果我想进行任何进一步的配置更改,我需要重建图像。第二个选项似乎是最简单的,因为我可以即时进行配置更改(根据容器中的需要重新启动服务)。
是否有推荐的方法将自定义配置注入 Docker 服务?
鉴于您的背景,我认为使用绑定安装会更好。
Docker 镜像应该可以在不同的上下文中重用,而仅针对特定配置(即环境)构建整个镜像将无法实现这一目的:
Docker 文档建议:
强烈建议您对图像的任何可变和/或用户可维护的部分使用 VOLUME 。
将配置文件从主机共享到容器。