问题描述
在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_USER_HOME
来填充 gradle 缓存? - 为什么人们需要将
.gradle
目录作为卷? - 我了解匿名卷在声明后无法更改其内容。是否有资源可以解释为什么在某处(例如,使用 RUN 命令的引擎盖下发生了什么)? Google 没有帮我解决这个问题
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)