禁用Docker撰写的缓存

问题描述 投票:0回答:1

我遇到了Dockerfile看起来像这样的情况:

FROM image with fully-configured server (without application)
COPY war created locally by IntelliJ inside server in Docker image

基本上每次当我使用这个Dockerfile启动容器时,Docker都会创建新的映像。因为这个.war文件经常变化(这是在这里使用Docker的全部目的 - 为了在开发过程中轻松部署.war图像),我有很多不使用此应用程序的旧版本的图像。这会导致磁盘空间问题,我必须手动修剪所有已弃用的映像。

有没有办法禁用Docker缓存?我正在使用由docker-compose文件连接的一组服务器,所以也许它可以以某种方式管理这些图像,以便在不再需要时自动删除它们?

docker build--no-cache参数,但它只会使每个层的缓存无效(每个命令总是执行,但仍保存在images / layers存储库中)。 --force-rm也不适合我。

docker caching docker-compose dockerfile
1个回答
0
投票

正如Docker documentation所说,如果每个docker构建文件发生变化,缓存将被忽略,因为校验和文件发生了变化,也许你必须从Dockerfile中删除COPY命令并使用VOLUME并在每个docker run上复制war文件以确保战争将在每次开始时改变

© www.soinside.com 2019 - 2024. All rights reserved.