如何在 docker-compose 下强制重新创建并仅启动一个容器?

问题描述 投票:0回答:1

进行任何代码更改后,我的典型开发步骤是:

  1. 更改代码并构建 jar 文件
  2. 构建使用 jar 文件的 docker 镜像
  3. 终止当前的“docker-compose up”命令。
  4. 再次运行“docker-compose up”。

我的 docker-compose 文件有五个服务。在步骤 3 中,所有容器都会下降。理想情况下,我只需要重新运行我的应用程序容器。

我正在寻找一种在批处理脚本中执行以下操作的方法:

  1. 关闭应用程序容器。其他四个容器应该继续运行。
  2. 构建新的 docker 镜像
  3. 强制 docker-compose 重新创建我的应用程序容器并启动它。

对于第 1 步,看起来我可以使用“docker-compose Kill myappname”。

第 2 步也很简单。

我想知道如何完成步骤 3。谢谢。

docker docker-compose
1个回答
9
投票

您不需要显式停止当前容器。

如果您的映像已更改,当您再次运行 up 命令时,docker compose 将识别它并重新创建您的容器。

因此,重建您的映像并运行

docker compose up

如果您使用 compose 来构建镜像,请添加

--build
标志以让它重建您的镜像,之后容器也会被重新创建。

您还可以将特定服务的名称添加到您的 up 命令中,即

docker compose up -d --build app

如果图像没有改变,您可以添加

--force-recreate
标志。

© www.soinside.com 2019 - 2024. All rights reserved.