Spring boot 如何使用google cloud build部署springboot应用程序(在git上编译)?
有人能告诉我如何配置存储在github上的springboot应用程序的自动部署吗 我尝试了一些解决方案从堆栈溢出,但它不工作。 我的app.yaml文件看起来像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
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),也可以指定用于生成的文件。