Пружинный загрузчик Gradle не генерирует обертку и не производит работающую банку - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь создать загрузочное приложение Spring, которое будет скомпилировано и полностью запущено в Docker с использованием многоступенчатого файла dockerfile:

###############
#### Build ####
###############
FROM openjdk:13-alpine as builder

WORKDIR /usr/src/app
COPY  . .
RUN path/to/gradlew build

################
#### Deploy ####
################
FROM openjdk:13-alpine
WORKDIR /usr/src/app
COPY --from=builder /usr/src/app/some/path /usr/src/app/

EXPOSE 8080
CMD [java, some/path/someJar.jar]

Две вещи, которые я не могу понять:

  1. В моем проекте нет файла gradlew и файла gradlew.bat. Несмотря на наличие каталога gradle / и в файле gradle / wrapper / gradle-wrapper.properties я определяю версию Gradle 3.5.1. В настройках я пробовал «упаковщик по умолчанию» и «конфигурация задачи оболочки».

enter image description here

Intellij Idea, похоже, как-то разрешает исполняемый файл gradle. Не знаю, где находится исполняемый файл.

  1. Есть некоторый вывод, сгенерированный gradle при сборке. Но ничего, что я могу запустить вручную или преобразовать в хорошую команду Docker. Он в основном компилирует классы Java и все. Запуск основного класса в Java не работает. Еще раз, используя Intellij Idea «запустить» работает отлично. Что делает Intellij?

1 Ответ

1 голос
/ 02 апреля 2019

Для создания файлов-обёрток сначала нужно установить Gradle другим способом. Проверьте документация по установке . После этого вам нужно выполнить команду внутри корневой папки вашего проекта:

gradle wrapper

Это создаст необходимые файлы wrapper и wrapper.bat. Затем вы можете использовать эти сценарии для запуска из вашего Dockerfile. Подробнее о работе с оберткой можно узнать здесь .

После того, как вы сгенерируете файлы-обертки, вы можете настроить Intellij, перейдя на Settings -> Build, Execution, Deployment -> Gradle и применив переключатель Use default gradle wrapper (recommended). Тогда ИДЕЯ будет использовать его.

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