我有以下命令强制重新创建我所有的容器:
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