git - 对于可能在不同服务器上的实例之间存在细微配置差异的 Web 应用程序,什么是可接受的生产部署

标签 git docker docker-compose production dev-to-production

关闭。这个问题是opinion-based .它目前不接受答案。












想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.

4年前关闭。




Improve this question




所以现在我们使用 Git 作为我们的版本控制。我们还使用 docker compose 来管理部署

我想处理这样一个事实,即我们有一些客户希望他们自己的网站版本与 docker-compose.yml 略有不同(例如由 docker 定义的环境变量)。这会导致 git pull 担心 docker-compose.yml 文件中未提交的更改。

我在想我可以从 master 打开一个分支,然后随着时间的推移从 master 中提取更改,这样我们就不必担心配置特定文件的更改。

当然,我可能会完全遗漏一些东西,并且有一个简单的解决方案可以解决所有这些问题。

最佳答案

标准的 git 方式是创建一个分支并经常从 master 更新它。这是一种非常常见的方法。

事实上,大多数开源项目都使用非常相似的技术,即从主存储库中获取一个分支,贡献者在分支存储库上进行自定义更改。

作为一个小评论,最好在 env_file 中维护环境变量,因为 env 值可能与客户端不同。这样,您在 docker-compose 文件中的手动 merge 就会减少。

更新

另一个可能值得评估的想法是 git submodules .基本上,您可以将需要不同的东西放入 git 子模块中,并在您的 repo 和客户端的 repo 之间保持父模块相同。这样客户端指向他自己的子模块,不需要维护单独的分支。

关于git - 对于可能在不同服务器上的实例之间存在细微配置差异的 Web 应用程序,什么是可接受的生产部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48450570/

相关文章:

git - 将 Git Slave 与 Jenkins 集成

linux - Kafka 使用 Docker 进行生产集群

eclipse - 如何从 eclipse 连接到 docker 进行调试?

docker - Docker-Windows容器无法解析主机

nginx - docker 不会在 nginx html 根目录中创建文件夹

redis - Traefik - 无法为不同域公开具有相同端口的 redis docker 容器

git - 编辑过去的提交消息

git - 如何在 Mac 上开始使用 Git

SVN & DVCS 工作流程——保存历史

docker - 在docker中启用squashfs