Где находится файл JAR из процесса сборки spring boot в среде docker linux…?

#java #spring-boot #docker #gradle

Вопрос:

Сначала я объясню свою ситуацию.

У меня есть проект spring boot в среде aws cloud9 на Github.

В этом проекте spring boot в настоящее время нет папки сборки.

Примерная структура проекта выглядит следующим образом.

 eks-workspace    spring-backend   gradle   infra   src   bulid.gradle.kts   Dockerfile   gradlew   gradlew.bat   settings.gradle.kts  

В этой ситуации я написал файл Dockerfile следующим образом.

 // Dockerfile FROM openjdk:11-jdk  COPY gradlew . COPY gradle gradle COPY build.gradle.kts . COPY settings.gradle.kts . COPY src src  RUN chmod  x ./gradlew RUN ./gradlew bootJar  COPY example.jar .  EXPOSE 8080 ENTRYPOINT ["java","-jar","/example"]  

Чтобы увидеть, где файл jar был сохранен во время процесса сборки докера, я выполнил команду «ВЫПОЛНИТЬ ls-al» и подтвердил, что файл jar был сохранен в «/build/libs/example.jar».

Однако, когда я выполнил инструкцию «COPY/bulid/libs/example.jar /» в файле докеров «ОШИБКА копирования: файл не найден в контексте сборки или расширен.docerignore: статистика example.jar: файл не существует» произошло.

Я не думаю, что это ошибка, когда файл не существует, потому что я не создал отдельный файл .dockerignore, но я не знаю, где находится файл jar во время процесса сборки.

Комментарии:

1. COPY копирует файл из внешней среды сборки Docker в образ. Вам нужно RUN cp это сделать вместо этого?

2. @DavidMaze OMG… твой ответ был совершенно правильным… Большое спасибо!!