我有多个微服务,我使用docker compose进行开发部署。当microservices代码库中有一些更改时,我会触发ci作业来重新部署它们。我有下面的脚本来做这件事。但每次我都必须从头开始构建所有图像,然后运行它们。完成所有这些操作后,我得到了匿名
图像。所以我使用最后一个脚本来删除它们。你有什么建议使这个过程更实用?是否有任何方法可以更新现有图像而不使用新的更改将其删除?
- docker-compose build
- docker-compose down
- docker-compose up -d --force-recreate
- docker rmi $(docker images -f "dangling=true" -q) -f
其他信息:我正在使用gitlab ci
我宁愿确保所有图像下载之前,更新容器与新的图像,以尽量减少在中间状态的时间或更糟的是在中间的情况下,图像下载失败。
1) 我拉最新的图片:
docker-compose pull
2) 然后我重新启动容器:
docker-compose up -d --remove-orphans
3)可选地,我删除过时的图像:
docker image prune
您可以使用以下方法进行更新:
docker-compose pull
现在您的图像已更新。如果您有以前版本的容器正在运行,您应该重新启动它以使用更新后的映像:
docker-compose up --detach
up
命令在图像或配置更改时自动重新创建容器。
Docker容器的设计是短暂的。若要更新现有容器,请删除旧容器并启动新容器。因此,你所遵循的过程是正确的。
您可以将命令简化为以下命令:
docker-compose up --force-recreate --build -d
docker image prune -f
我正在尝试在现有列表中添加一个新项目,但无法添加。当我调试时,它显示返回为true,但最终新项没有添加到列表中。 我的示例代码如下:Employee employee1=new Employee(5001,“BOB”,financeDept.getDepartment_name());employee2=新员工(5002,“SAM”,FinanceDepartment.getDepartment_
我目前正在运行官方的ghost Docker映像,并使用该映像构建几个容器。 如果我想更新my Docker映像,我只需使用以下命令:
我正在与Laravel 5.6与MySql数据库在我的Web应用程序。 我有下面的函数方法来添加顺序, 在我的系统中,我有以下车辆的表名, 现在我需要更新上面的表adtype值从0到1,当点击提交按钮关于上面的addorder函数。那么如何编写代码来更新上面函数中的代码呢???? 我的网址如下...... 路线是,
问题内容: 如何用另一个.yml文件更新先前的conda环境。在具有多个需求文件(例如)的项目上工作时,这非常有用。 例如,下面是一个包含和pip软件包的文件: 碱基 实际环境是使用创建的 。 稍后,需要将其他软件包添加到中。例如,另一个文件需要导入这些更新。 先前完成此任务的尝试包括: 创建具有导入定义的文件: 然后运行命令: 。 这是行不通的。有什么想法吗? 问题答案: 尝试使用 或无需激活环
我需要制作一个现有war文件的副本,并更新其中的一个xml文件。我对如何做到这一点的想法是: 从现有WAR中提取文件 替换文件中的字符串 复制警告 将修改的文件添加回复制的WAR
我在一个包含3000个文档的核心中有一个Solr索引。 我想基于唯一键PaperID修改整个核心中单个字段的值。 有没有人能为我指点一下...最诚挚的问候