即使在重建之后,Docker 也不会使用最新版本

时间:2021-04-23 02:21:31

标签: docker docker-compose

我遇到了一个昨天才开始的奇怪问题。 一般来说,我有一个简单的工作流程,每当我有新的更新时,我都会构建新的容器,然后重新启动 docker。

所以: bash docker-compose build <container> 然后我做docker-compose down; docker-compose up。 并且使用最新版本。

但是,出于某种原因,它一直使用旧版本。

在我的 Dockerfile 中,我有两行这两行:

COPY . .
RUN npm run build

真正让我失望的是,在标准输出中我可以看到它正在写入新文件,因此使用最新版本的代码(我知道这一点是因为有以前不存在的新文件,而且它们”正在登录标准输出)。

但是,一旦它被构建,我进入容器,我可以看到它使用的是旧版本的代码。

所以,对我来说,它的构建是正确的,只是使用了不正确的版本。

我想一定发生了一些错误,我真的删除了所有容器,修剪了卷,重新启动了 ubuntu 并再次尝试。它奏效了!

除此之外,问题又重新开始了,我似乎无法弄清楚发生了什么。

帮助?

编辑: 我应该提到我已经尝试过 docker-compose up --build,我已经尝试过强制创建并且没有缓存标志。仍然没有运气。

1 个答案:

答案 0 :(得分:0)

我发现问题与音量有关。 因为我现在创建了一个卷,其中两个不同的容器共享代码,而不是使用新代码,它总是使用相同的代码。

因此,要解决此问题,只需要在 docker-compose down (-v) 上添加 docker-compose down -v

这删除了所有卷并解决了问题。