Dockerfile RUN 修改匿名 VOLUME

问题描述

openj9 gradle dockerfile中有这一行

VOLUME [/home/gradle/.gradle] <- Create an anonymous volume with the content of the /home/gradle/.gradle directory

我想创建一个 docker 镜像,它已经在 gradle 缓存中包含了我的 java 应用程序的依赖项
我的 Dockerfile 如下

FROM gradle:openj9
workdir /app
copY src/ ./src <- copy all the source code,build.gradle...
RUN gradle compileIntegrationJava <- This is to warmup the gradle cache

根据docker documentation on volumes,匿名卷在声明后的更改将被丢弃。
因此,RUN 步骤不会填充 gradle 缓存

我可以通过设置 ENV GRADLE_USER_HOME /app

来更改 gradle 缓存位置

我有三个问题

  1. 是否在此处设置 GRADLE_USER_HOME 来填充 gradle 缓存?
  2. 为什么人们需要将 .gradle 目录作为卷?
  3. 我了解匿名卷在声明后无法更改其内容。是否有资源可以解释为什么在某处(例如,使用 RUN 命令的引擎盖下发生了什么)? Google 没有帮我解决这个问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)