Docker 撰写 --force-recreate --build 使用缓存,但我不希望它这样做



我有以下命令强制重新创建我所有的容器:

docker-compose up --force-recreate --build 

但是,我仍然看到以下行*:

Step 6/10 : RUN cp environment-prod-docker.js environment.js
---> Using cache
---> e9a2354577ef
Step 7/10 : RUN cat environment.js
---> Using cache
---> ccbc732030ea
Step 8/10 : RUN npm ci --only=production
---> Using cache
---> 6baeabd30cf7

如何禁用该缓存?(例如,它不会重建我的应用程序。

我已经发现,在给定容器上使用此特定命令可以重新构建它:

docker-compose build --no-cache

但是由于特定原因,我需要使用一行构建'n'start命令,那么有没有办法用docker-compose up产生这个命令?

我正在使用docker-compose.yml版本"3.4"。

*:Dockerfile 是这样的:

...
RUN cp environment-prod-docker.js environment.js
RUN cat environment.js
RUN npm ci --only=production
...

不幸的是,标记答案对我不起作用。但是,此命令确实:

docker system prune --all --force

据我所知,您无法阻止docker-compose up使用构建缓存。我发现有效执行此操作的唯一方法是首先运行:

docker builder prune

这将完全清除构建器缓存,这将导致下次运行docker-compose up时完全重建。

我想补充一些关于重建映像的观点

docker-compose build --no-cache can't

上面的命令无法在我的情况下重建映像。解决方案是:

docker build

不幸的是,docker compose up --build仍然不支持--no-cache参数。

另一个选项是将no_cache: true添加到生成定义中: https://docs.docker.com/compose/compose-file/build/#no_cache

相关内容

最新更新