Как мне создать докер-контейнер приложения Gradle? - PullRequest
1 голос
/ 14 апреля 2019

У меня есть приложение gradle spark, которое нужно использовать с докером для создания контейнера. Я новичок в докере, и мне сложно настроить Dockerfile.

В Dockerfile я попытался запустить build.gradle и запустить Main.java.

# Start with a base image containing Java runtime
FROM gradle:jdk10 as builder

COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build

FROM openjdk:10-jre-slim

COPY ./ /tmp/

CMD ["cd tmp/src/main/java/Empowering/"]
CMD ["javac Main.java"]

EXPOSE 8080

1 Ответ

0 голосов
/ 14 апреля 2019

Для вашего контейнера времени выполнения вы не должны использовать javac.Gradle делает сборку для вас.Таким образом, вам нужно будет беспокоиться только о том, как работает Gradle.Кроме того, вы хотите убедиться, что вы правильно копируете материал, создаваемый вашим сборщиком.

Я не знаю, какое приложение вы используете и как выглядит конфигурация Gradle, поэтому яЯ собираюсь сделать некоторые предположения здесь.

Я настоятельно рекомендую вам использовать плагин приложения, если вы генерируете веб-приложение.В этом случае installDist поместит все необходимое в папку build/install.Как только это будет сделано, вы можете просто использовать сгенерированный сценарий оболочки для вашего CMD / ENTRYPOINT

Например:

# Start with a base image containing Java runtime
FROM gradle:jdk10 as builder

COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle installDist

FROM openjdk:10-jre-slim

EXPOSE 8080
COPY --from=builder /home/gradle/src/build/install/<app name>/ /app/
WORKDIR /app

CMD ["bin/<app name>"]

Если вы упаковываете как банку, выможно просто скопировать банку, сгенерированную задачей build / fat jar в компоновщике, а затем запустить этот

# Start with a base image containing Java runtime
FROM gradle:jdk10 as builder

COPY --chown=gradle:gradle . /home/gradle/src
WORKDIR /home/gradle/src
RUN gradle build 

FROM openjdk:10-jre-slim

EXPOSE 8080
COPY --from=builder /home/gradle/src/build/<jar output path>/<app name>.jar /app/
WORKDIR /app

CMD ["java -jar <app name>.jar"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...