docker-compose.yml的版本控制

docker-compose.yml的版本控制,docker-compose,Docker Compose,我的应用程序有4个docker容器,它们相互通信,并用docker compose.yml文件指定,因此我可以从存储文件的位置开始执行docker compose up-d 实际上,我的CI服务从提交到git存储库,再到测试,然后构建部署所需的docker映像,我已经完成了设置。我现在需要弄清楚如何部署 我已经运行了当前版本,并且通过保存在.env文件中的环境变量配置了我的docker compose.yml文件。它不太可能在不同版本之间改变,但它可能会改变。将要更改的是.env文件,因为该文件

我的应用程序有4个docker容器,它们相互通信,并用
docker compose.yml
文件指定,因此我可以从存储文件的位置开始执行
docker compose up-d

实际上,我的CI服务从提交到git存储库,再到测试,然后构建部署所需的docker映像,我已经完成了设置。我现在需要弄清楚如何部署

我已经运行了当前版本,并且通过保存在
.env
文件中的环境变量配置了我的
docker compose.yml
文件。它不太可能在不同版本之间改变,但它可能会改变。将要更改的是
.env
文件,因为该文件指定CI系统刚刚构建的图像名称和标记,
docker compose.yml
文件将使用该文件启动运行系统的新版本
.env
由存储库中的脚本动态创建,并由CI系统在其工作区中运行。我的部署步骤实际上只是将
.env
docker compose.yml
复制到位,然后停止旧的服务集并启动新的服务

我的问题是,如果我在运行版本下更改
.env
文件或
docker compose.yml
,那么
docker compose down
是否会正确停止旧的运行图像,这样当我立即使用
docker compose up-d
跟随它时,我会切换到新图像。有没有更好的方法来处理这种情况