所以,假设我有一个由 5 个服务组成的 docker,其中一个是一个容器,可以用任何编程语言(在我的例子中是 c#)运行一些代码。我正在更改代码并执行
docker compose up --build -d
命令。据我的理解,如果其中一些图像发生变化(我更改了代码),它应该构建新图像,并将使用旧图像的容器替换为使用新图像的新容器。在这里,容器更换不起作用。
使用 docker compose up --build -d
命令后,我要么必须手动重新启动容器(不知何故,它现在开始使用新图像),要么使用 --force-recreate
选项,这在我的情况下不太可接受,因为其他图像没有更改,我不想重新启动它们容器。
我的 IDE 显示,默认情况下,如果映像或配置发生更改,docker compose up 会替换容器,但事实并非如此。
Docker 和 compose 版本
>docker --version
Docker version 27.2.0, build 3ab4256
>docker-compose --version
Docker Compose version v2.29.2-desktop.2
有
--watch / -w
标志可以满足您的需要:
查看源代码并在文件更新时重建/刷新容器。
尝试这样使用它
docker compose up --build -d --watch