Efe*_*Efe 28 docker gitlab-ci docker-compose
我有多个微服务,我anonymous用于开发部署.当微服务代码库发生一些变化时,我会触发ci job来重新部署它们.我有以下脚本来做到这一点.但每次我必须从头开始构建所有图像然后运行它们.完成所有这些操作后,我有了gitlab-ci图像.所以我使用最后一个脚本删除它们.你建议什么使这个过程更实用?有没有办法更新现有图像而不用新的更改删除它?
- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f
Run Code Online (Sandbox Code Playgroud)
附加信息:我正在使用 anonymous
小智 69
我更喜欢确保在使用新图像更新容器之前下载所有图像,以最大限度地减少处于中间状态的时间,或者更糟的是处于中间状态,以防图像下载失败。
1)我拉最新的图像:
docker-compose pull
Run Code Online (Sandbox Code Playgroud)
2)然后我重新启动容器:
docker-compose up -d --remove-orphans
Run Code Online (Sandbox Code Playgroud)
3) 或者,我删除过时的图像:
docker image prune
Run Code Online (Sandbox Code Playgroud)
yam*_*enk 49
Docker容器设计为短暂的.要更新现有容器,请删除旧容器并启动新容器.因此,您所遵循的流程是正确的.
您可以将命令简化为以下命令:
docker-compose up --force-recreate --build
docker image prune -f
Run Code Online (Sandbox Code Playgroud)
Snr*_*Snr 48
docker-compose pull
Run Code Online (Sandbox Code Playgroud)
然后
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
你不需要“down”“docker-compose up -d”命令只会重新创建一个更改过的
Evg*_*nov 15
您可以使用以下方法更新它:
docker-compose pull
Run Code Online (Sandbox Code Playgroud)
现在,您的图像已更新。如果您正在运行以前版本的容器,则应重新启动它以使用更新的映像:
docker-compose restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32020 次 |
| 最近记录: |