Spring boot 如何使用google cloud build部署springboot应用程序(在git上编译)?

Spring boot 如何使用google cloud build部署springboot应用程序(在git上编译)?,spring-boot,google-cloud-platform,google-cloud-build,Spring Boot,Google Cloud Platform,Google Cloud Build,有人能告诉我如何配置存储在github上的springboot应用程序的自动部署吗 我尝试了一些解决方案从堆栈溢出,但它不工作。 我的app.yaml文件看起来像 runtime: java env: flex runtime_config: jdk: openjdk11 handlers: - url: /.* script: this field is required, but ignored 我的cloudbuild.yaml steps: - name: 'gcr.io/cl

有人能告诉我如何配置存储在github上的springboot应用程序的自动部署吗

我尝试了一些解决方案从堆栈溢出,但它不工作。 我的app.yaml文件看起来像

runtime: java
env: flex
runtime_config:
  jdk: openjdk11
handlers:
- url: /.*
  script: this field is required, but ignored
我的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中出现异常:未找到可部署的工件。无法继续


感谢您的回复。

首先,AppEngine Flexible不存在openJKD11运行时配置。您必须使用如下自定义运行时:

runtime: custom
env: flex
handlers:
- url: /.*
  script: this field is required, but ignored
然后,您必须构建代码的容器映像。您可以在项目根目录中使用标准的
Dockerfile
,如下所示

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"]
根据jar的名称更改此行的
java-*.jar
COPY--from=builder/app/target/java-*.jar/java.jar

在您的云构建中,只需部署您的应用程序

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

您以前的云构建无法工作,因为您的jar文件位于
target/
目录中,而不在根目录中,并且您的部署没有找到它。为此,您可以在云构建中添加一个
dir
param

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不受支持。

当我尝试按照您的指令执行时,我得到一个错误:错误:(gcloud.app.deploy)自定义运行时在源目录中必须正好有[Dockerfile]和[cloudbuild.yaml]中的一个;[/workspace]包含两个编辑:我必须将cloudbuild移动到另一个文件夹,并在cloudbuild触发器中更改其路径。我的坏。。。。将
cloudbuild.yaml
文件重命名为其他文件。然后,在使用Cloud Build时,指定要使用的文件
gcloud builds submit--config=.yaml
。在UI中(如果使用trigge),也可以指定用于生成的文件。