Как развернуть приложение Springboot с помощью облачной сборки Google (компиляция на git pushes)? - PullRequest
0 голосов
/ 26 апреля 2020

Может кто-нибудь подсказать, как настроить автоматическое c развертывание Springboot-приложения, хранящегося на github?

Я пробовал какое-то решение из стека через поток, но оно не работает. Мой файл app.yaml выглядит как

runtime: java
env: flex
runtime_config:
  jdk: openjdk11
handlers:
- url: /.*
  script: this field is required, but ignored

my cloudbuild.yaml

steps:
- name: 'gcr.io/cloud-builders/mvn'
  args: ['package']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy', '/workspace/src/main/resources/app.yaml']

И у меня ошибка:

Исключение в потоке "main "com.google.cloud.runtimes.builder.exception.ArtifactNotFoundException: не удалось найти развертываемые артефакты. Невозможно продолжить.

Спасибо за ваш ответ.

1 Ответ

1 голос
/ 26 апреля 2020

Во-первых, конфигурация openJKD11 во время выполнения не существует для AppEngine Flexible. Вы должны использовать пользовательскую среду выполнения, подобную этой:

runtime: custom
env: flex
handlers:
- url: /.*
  script: this field is required, but ignored

Затем вы должны создать контейнерный образ вашего кода. Вы можете использовать стандарт Dockerfile в своем проекте root, как этот

FROM maven:3.6.3-jdk-11 as builder

# Copy local code to the container image.
WORKDIR /app
COPY pom.xml .
COPY src ./src

# Build a release artifact.
RUN mvn package 

FROM adoptopenjdk/openjdk11

COPY --from=builder /app/target/java-*.jar /java.jar

# Run the web service on container startup.
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-Dserver.port=${PORT}","-jar","/java.jar"]

Изменить java-*.jar этой строки COPY --from=builder /app/target/java-*.jar /java.jar в соответствии с именем вашего JAR

А в Cloud Build просто разверните свое приложение

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy']

Дополнительное замечание

Ваша предыдущая Cloud Build не могла работать, потому что ваш Файл jar находился в каталоге target/, а не в каталоге root, и ваше развертывание не нашло его. Для этого вы можете добавить параметр dir в ваш Cloud Build

steps:
- name: 'gcr.io/cloud-builders/mvn'
  args: ['package']
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app', 'deploy', '/workspace/src/main/resources/app.yaml']
  dir: "target"

Но следующей ошибкой будет то, что время выполнения openjdk11 не поддерживается.

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