一尘不染

如何在没有docker-compose停机的情况下重建和更新容器?

docker

我非常喜欢使用docker-compose。

例如。在我的服务器上,当我想通过较小的更改来更新我的应用程序时,我只需要git pull origin master && docker-compose restart完美运行即可。

但是有时候,我需要重建(例如,我添加了一个npm依赖项,需要npm install再次运行)。

在这种情况下,我愿意docker-compose build --no-cache && docker-compose restart

我希望这能:

  • 创建我的容器的新实例
  • 停止现有的容器(在较新的容器完成建造之后)
  • 开始新的
  • (可选)删除旧的,但是可以手动完成

但是实际上,它似乎又重新启动了前一个。

这是预期的行为吗?

重建 如何处理并开始新的重建?

也许我错过了一个特定的命令?还是拥有它有意义?


阅读 577

收藏
2020-06-17

共1个答案

一尘不染

从手动docker-compose重新启动

如果您对docker-compose.yml配置进行更改,则在运行此命令后这些更改将不会反映出来。

你应该能够做

$docker-compose up -d --no-deps --build <service_name>

--no-deps不启动链接服务。

2020-06-17