有人能告诉我如何配置存储在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:中的
异常没有找到可部署的工件。无法继续。
感谢您的回复。
发布于 2020-04-26 18:32:27
首先,openJKD11运行时配置对于灵活的AppEngine并不存在。您必须使用这样的自定义运行时:
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参数
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。
https://stackoverflow.com/questions/61443335
复制相似问题