我有以下 Dockerfile
FROM gradle:jdk13 AS appbuild
WORKDIR "/home/gradle/"
COPY --chown=gradle:gradle "./build.gradle" "/home/gradle/"
RUN gradle dependencies
COPY --chown=gradle:gradle "./src/" "/home/gradle/src/"
RUN gradle build --info
FROM openjdk:13
ENV LANG en_US.UTF-8
COPY --from=appbuild "/home/gradle/build/libs/frontend.jar" "/frontend.jar"
CMD ["java", "-jar", "-Dspring.profiles.active=default", "/frontend.jar"]
我的目标是防止每次构建 docker 映像时 gradle 下载依赖项。
该命令gradle dependencies
会下载所有必需的 java 库,以防它们丢失。
在第一个gradle dependencies
命令之前,我只复制了 build.gradle 以便只下载依赖项并缓存它们。
当我运行gradle build
命令时,为什么要再次下载所有文件?它们已经存在于其中一层中。
我试过用RUN gradle clean build --info || return 0
而不是gradle dependencies
,都一样。