我有一个Java服务需要打包,并且最终的Docker镜像只需要JAR文件和配置文件。但是,我需要先运行我的gradle
命令来构建JAR文件,但我不希望所有gradle
使用的内容都包含在最终的Docker镜像中。
这是我当前的DockerFile:
RUN apt-get update && apt-get install -y openjdk-7-jdk
COPY . /
RUN ./gradlew shadowJar
CMD ["java", "-jar", "service/build/libs/service.jar", "server", "service/service.yml"]
你可以看到我必须先COPY所有内容,这样才能运行./gradlew
(否则会显示找不到命令)。但最终我只需要service.jar
和service.yml
文件。
我可能遗漏了一些东西,但我如何在./gradlew
构建步骤期间使所有内容都可用,但只有结果镜像包含service.jar
和service.yml
呢?
.tar
的方法:https://dev59.com/wFkR5IYBdhLWcg3w9Rut#44030483 - Trendfischerdpkg -i
的结果。) - Torsten Bronger--squash
。 - Hunger