当前位置: 首页 > 知识库问答 >
问题:

如何避免单个命令/运行的 Docker 构建缓存?[重复]

慕嘉运
2023-03-14

我正在使用RUNls/some/directoryDockerfile进行“printf调试”。在命令运行一次且之前没有任何命令更改后,将缓存结果,并且不提供输出。

我可以用从不执行的部分来更改命令,例如追加< code > | | echo some changing number],这对于每次运行都很烦人,或者关闭构建缓存,这会影响更多的< code >运行,从而减慢< code>Dockerfile的开发。

有没有办法只禁用一个 RUN 的缓存而没有任何描述的缺点?

共有1个答案

宰父智敏
2023-03-14

使用构建arg是可以接受的解决方案吗?

# Dockerfile
FROM alpine
RUN echo "executed 1"

# Above this will be cached, below will be retriggered with new builds
ARG BUILD

RUN echo "executed 2"

然后,使用不同的构建参数号运行以重新运行arg以下的所有内容

$ docker build --build-arg BUILD=2 -t temp .

或者,使用日期作为内部版本号:

$ docker build --build-arg BUILD="$(date)" -t temp .
 类似资料:
  • 我正在为自己建立一个虚拟助手,如果像这里举个例子,要求个人执行每一个命令是错误和无效的: 有没有更有效的方法来检查要执行的命令?

  • 我需要用docker exec运行2个命令。我正在从docker容器中复制一个文件,不想处理凭据来使用像ssh这样的东西。此命令复制一个文件: 但它会创建一个子目录var/log,我想避免这种情况,所以如果我可以在docker容器中执行这些操作,我应该很好: 如何让docker exec运行2个命令?

  • 问题内容: 我目前正在为我的应用程序开发Node后端。在对其进行Docker化(docker build。)时,最长的阶段是。该指令在每个小的服务器代码更改上运行,通过使开发人员每次都等待构建完成来影响生产率。 我发现在应用程序代码所在的位置运行npm install并使用ADD指令将node_modules添加到容器中可以解决此问题,但这远非最佳实践。这有点破坏了将其Docker化的整个想法,并

  • 是否可以从Dockerfile构建映像并使用单个命令运行它 有一个命令来构建Dockerfile,还有来运行映像。 有没有这两个命令的任何组合,使它更容易构建和运行只有一个命令?

  • 我正在使用Guava缓存热数据。当缓存中不存在数据时,我必须从数据库中获取数据: 我的问题是当数据不存在于数据库中时,我希望它返回并且不做任何缓存。但Guava保存与缓存中的关键字,并抛出一个异常,当我得到它: com.google.common.cache.CacheLoader$InvalidCacheLoadExcION: CacheLoader为shisoft键返回null。 我们如何避免

  • 问题内容: 我目前正在为我的应用程序开发Node后端。在对其进行docker化(docker build)时,最长的阶段是。该指令在每个小的服务器代码更改上运行,通过使开发人员每次等待构建完成来影响生产率。 我发现在应用程序代码所在的位置运行npm install并使用ADD指令将node_modules添加到容器中可以解决此问题,但这远非最佳实践。这有点破坏了将其Docker化的整个想法,并且使