Как выполнить сборку gradle перед сборкой Docker на Heroku? - PullRequest
0 голосов
/ 05 июля 2019

Я хочу развернуть докеризованное приложение Spring-Boot, созданное с помощью gradle, на платформе Heroku, когда на github помещен коммит.

  • Я успешно развернул образ докера с помощью CLI, собрав его локально, а затем развернув его
  • Я успешно развернул "на github push" со стеком "heroku-18". После каждого коммита Heroku обнаруживает, что мой проект является начальным, собирает его и развертывает без проблем. Этот метод не запускает Docker.

Теперь я хочу переключиться на стек «контейнера», чтобы Heroku создавал мой Dockerfile и развертывал мое приложение после каждого коммита. Dockerfile правильно определен, но, поскольку JAR-файл не сгенерирован, шаг Dockerfile завершается неудачей.

Как я могу инициировать генерацию JAR на стороне Heroku, чтобы Dockerfile мог скопировать этот JAR в контейнер?

Журналы Heroku

=== Fetching app code
=== Building web (Dockerfile)
Sending build context to Docker daemon  50.69kBStep 1/11 : FROM openjdk:11-jre-slim
11-jre-slim: Pulling from library/openjdk
...
Step 4/11 : ADD build/libs/myapp-1.0-SNAPSHOT.jar /app/myapp.jar
ADD failed: stat /var/lib/docker/tmp/docker-builder545575378/build/libs/myapp-1.0-SNAPSHOT.jar: no such file or directory

heroku.yml

build:
  docker:
    web: Dockerfile

Dockerfile

FROM openjdk:11-jre-slim
VOLUME /var/log/my-app
ARG JAR_FILE
ADD build/libs/my-app-1.0-SNAPSHOT.jar /app/my-app.jar
RUN chgrp -R 0 /app
RUN chmod -R g+rwX /app
RUN chgrp -R 0 /var/log/my-app
RUN chmod -R g+rwX /var/log/my-app
CMD [ "-jar", "/app/my-app.jar" ]
ENTRYPOINT ["java"]
EXPOSE 8080
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...