Я пытаюсь создать загрузочное приложение 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]
Две вещи, которые я не могу понять:
- В моем проекте нет файла gradlew и файла gradlew.bat. Несмотря на наличие каталога gradle / и в файле gradle / wrapper / gradle-wrapper.properties я определяю версию Gradle 3.5.1. В настройках я пробовал «упаковщик по умолчанию» и «конфигурация задачи оболочки».
![enter image description here](https://i.stack.imgur.com/OEWyJ.png)
Intellij Idea, похоже, как-то разрешает исполняемый файл gradle. Не знаю, где находится исполняемый файл.
- Есть некоторый вывод, сгенерированный gradle при сборке. Но ничего, что я могу запустить вручную или преобразовать в хорошую команду Docker. Он в основном компилирует классы Java и все. Запуск основного класса в Java не работает. Еще раз, используя Intellij Idea «запустить» работает отлично. Что делает Intellij?