如何解决Google App Engine标准Java 11中的Spring Boot配置文件-gcloud
我正在通过Github动作部署我的spring boot应用程序。这样,我就有了使用gcloud执行应用程序部署以将我的应用程序部署到Google App Engine标准的管道。我已经创建了配置文件,我想将其注入以在运行时启动应用程序
简而言之:如何使用gcloud部署App Engine标准Java 11应用程序并支持spring概要文件
部署命令
app deploy src/main/appengine/app-dev.yaml --version=1
配置文件定义
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<ACTIVE_PROFILE>dev</ACTIVE_PROFILE>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<ACTIVE_PROFILE>prod</ACTIVE_PROFILE>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<profiles>
<profile>${ACTIVE_PROFILE}</profile>
</profiles>
</configuration>
</plugin>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>2.3.0</version>
<configuration>
<projectId>${gcloud-projectId}</projectId>
<version>1</version>
</configuration>
</plugin>
</plugins>
</build>
app-dev.yaml文件
runtime: java11
env: standard
instance_class: B4_1G
handlers:
- url: .*
script: auto
secure: always
redirect_http_response_code: 301
basic_scaling:
max_instances: 5
idle_timeout: 60m
env_variables:
ACTIVE_PROFILE: dev
Application.yaml文件
spring:
profiles:
active: @ACTIVE_PROFILE@
解决方法
仅通过在app.yaml文件中包含spring_profiles_active,即可在Google App Engine标准Java 11的dev spring配置文件中运行我的应用程序。
env_variables:
spring_profiles_active: "dev"
,
这似乎是由于App Engine需要为您的应用提供入口点。
某些框架(以及Spring Boot)也会构建可执行的uber JAR文件。发生这种情况时,运行时将通过运行Uber JAR应用程序来启动您的应用程序。
因此,您需要一个App Engine将用于其内容的入口点。应该在您的app.yaml
中定义,如下所示:
runtime: java11
entrypoint: java -Xmx64m -jar YOUR-ARTIFACT.jar
示例YOUR-ARTIFACT.jar
应用程序jar必须满足以下条件:
- 与您的app.yaml文件位于根目录中。
- 在其META-INF / MANIFEST.MF元数据文件中包含一个Main-Class条目。
- (可选)包含一个Class-Path条目,其中包含其他从属jar的相对路径的列表。这些将自动与应用程序一起上传。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。