Я не могу найти файл jar при попытке скопировать его в многоэтапную сборку докера - PullRequest
0 голосов
/ 07 октября 2019

Итак, я очень новичок в докере и пытаюсь докернизировать мое приложение с весенней загрузкой. Мне удалось заставить его работать с данным файлом JAR, но теперь я хотел бы сделать многоэтапную сборку для сборки файла JAR с использованием gradle, чтобы мне не пришлось вручную генерировать JAR перед запуском docker build {app-name}

Это мои текущие настройки. Он не может найти файл jar, и я не знаю, как я могу перемещаться по файловой системе, чтобы найти его (кроме запуска команд оболочки в файле docker для распечатки файлов и папок)

DOCKERFILE

FROM gradle:jdk8 as build

COPY --chown:gradle:gradle . /home/gradle/src

WROKDIR /home/gradle/src 

RUN gradle clean build --parallel

FROM  openjdk:8-alpine

WORKDIR /usr/app

COPY --from=build /home/gradle/src/app-name.jar /usr/app/

RUN sh -c 'touch app-name.jar'

ENTRYPOINT ["java", "-jar", "app-name.jar"]

Консольный выход

Step 7/9. : COPY —from=build /home/gradle/src/app-name.jar /usr/app/
COPY failed: stat /var/lib/ldocker/overlay2/22e326d9f26f581a629417c35e226428f3cc63fd496799c55dde4be413ca26690/merged/home/gradle/src/app-name.jar: no such file or directory

1 Ответ

1 голос
/ 07 октября 2019

Директиву COPY необходимо скопировать из каталога build/libs/ gradle, который является местоположением по умолчанию для артефактов сборки - поскольку он ищет JAR в корне проекта. Это должно работать:

COPY —from=build /home/gradle/src/build/libs/app-name.jar /usr/app

Предполагается, что файл Docker находится в корневом каталоге вашего проекта. Если это не так, вам нужно соответствующим образом скорректировать путь копирования, используемый в файле Docker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...