问题:Docker compose up --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

但由于特定原因,我需要使用单行 build'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-compose up使用构建缓存。我发现有效地做到这一点的唯一方法是首先运行:

docker builder prune

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

Logo

云原生社区为您提供最前沿的新闻资讯和知识内容

更多推荐