我遇到了一个昨天才开始的奇怪问题。 一般来说,我有一个简单的工作流程,每当我有新的更新时,我都会构建新的容器,然后重新启动 docker。
所以:
bash docker-compose build <container>
然后我做docker-compose down; docker-compose up
。
并且使用最新版本。
但是,出于某种原因,它一直使用旧版本。
在我的 Dockerfile 中,我有两行这两行:
COPY . .
RUN npm run build
真正让我失望的是,在标准输出中我可以看到它正在写入新文件,因此使用最新版本的代码(我知道这一点是因为有以前不存在的新文件,而且它们”正在登录标准输出)。
但是,一旦它被构建,我进入容器,我可以看到它使用的是旧版本的代码。
所以,对我来说,它的构建是正确的,只是使用了不正确的版本。
我想一定发生了一些错误,我真的删除了所有容器,修剪了卷,重新启动了 ubuntu 并再次尝试。它奏效了!
除此之外,问题又重新开始了,我似乎无法弄清楚发生了什么。
帮助?
编辑:
我应该提到我已经尝试过 docker-compose up --build
,我已经尝试过强制创建并且没有缓存标志。仍然没有运气。
答案 0 :(得分:0)
我发现问题与音量有关。 因为我现在创建了一个卷,其中两个不同的容器共享代码,而不是使用新代码,它总是使用相同的代码。
因此,要解决此问题,只需要在 docker-compose down (-v
) 上添加 docker-compose down -v
。
这删除了所有卷并解决了问题。