使用Palantir Gradle插件构建Docker容器时找不到java – .jar文件

前端之家收集整理的这篇文章主要介绍了使用Palantir Gradle插件构建Docker容器时找不到java – .jar文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

如果我尝试在Windows 10下使用Spring Boot应用程序构建Docker容器,则会出现以下错误

  1. > Task :docker Failed
  2. COPY Failed: stat /var/lib/docker/tmp/docker-builder711841135/myproject.jar: no such file or directory

我在版本18.03.0-ce-win59(16762)中使用Docker Community Edition,在Java 8中使用Gradle 4.7.

build.gradle(缩写):

  1. plugins {
  2. id 'java'
  3. id 'org.springframework.boot' version '2.0.1.RELEASE'
  4. id "com.palantir.docker" version "0.19.2"
  5. }
  6. version = '2.0.0'
  7. sourceCompatibility = 1.8
  8. group = "com.example"
  9. repositories {
  10. mavenCentral()
  11. }
  12. bootJar {
  13. archiveName 'myproject.jar'
  14. }
  15. dependencies {
  16. ...
  17. }
  18. docker {
  19. dependsOn(build)
  20. name "${project.group}/${jar.baseName}"
  21. files bootJar
  22. }

Dockerfile(顶级项目目录中build.gradle的兄弟):

  1. FROM openjdk:8-jre
  2. COPY build/libs/myproject.jar myproject.jar
  3. ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/myproject.jar"]

如果我只使用Docker构建Docker容器(没有Gradle),它就能工作.

我怎样才能让Gradle(或Docker?)找到myproject.jar文件

最佳答案
它适用于docker任务的以下配置:

  1. docker {
  2. dependsOn build
  3. name "${project.group}/${jar.baseName}"
  4. files bootJar.archivePath
  5. buildArgs(['JAR_FILE': "${bootJar.archiveName}"])
  6. }

使用这个略有不同的docker文件

  1. FROM openjdk:8-jre
  2. ARG JAR_FILE
  3. COPY ${JAR_FILE} app.jar
  4. ENTRYPOINT ["java","/app.jar"]

猜你在找的Docker相关文章