Spring boot 云运行:部署spring docker映像导致错误;无法在端口环境变量定义的端口上启动并侦听

Spring boot 云运行:部署spring docker映像导致错误;无法在端口环境变量定义的端口上启动并侦听,spring-boot,docker,google-cloud-platform,google-cloud-run,google-container-registry,Spring Boot,Docker,Google Cloud Platform,Google Cloud Run,Google Container Registry,我正在尝试将存储在docker注册表中的spring boot docker映像部署到云运行。 然而,当我部署映像时,我得到了错误 云运行错误:容器无法启动。无法在端口环境变量定义的端口上启动并侦听。此修订版的日志可能包含更多信息。 我知道这可能是由端口和地址设置引起的,所以我修复了这些部分,尽管仍然遇到相同的错误。具体来说,我在application.yml上设置了以下内容 server: port: ${PORT:8080} address: ${ADDRESS:localhost}

我正在尝试将存储在docker注册表中的spring boot docker映像部署到云运行。
然而,当我部署映像时,我得到了错误

云运行错误:容器无法启动。无法在端口环境变量定义的端口上启动并侦听。此修订版的日志可能包含更多信息。

我知道这可能是由端口和地址设置引起的,所以我修复了这些部分,尽管仍然遇到相同的错误。具体来说,我在application.yml上设置了以下内容

server:
  port: ${PORT:8080}
  address: ${ADDRESS:localhost}
我知道
PORT
变量将通过云运行传递(在我的情况下,云运行时PORT num设置为8080)。而且
地址
也将由我自己传递给我(值为0.0.0.0,参考)

以下是我的Dockerfile building spring boot docker图片,仅供参考

# Stage1 - execute build process
FROM openjdk:14-jdk-alpine as build_process
WORKDIR /back_end
COPY . .
RUN ./gradlew build -x test

# Stage2 - boot app with the build output above
FROM openjdk:14-jdk-alpine
EXPOSE ${PORT}
COPY --from=build_process /back_end/build/libs/back_end-0.0.1-SNAPSHOT.jar ./app.jar
RUN adduser -D user
USER user
ENTRYPOINT ["sh","-c","java -jar app.jar"]

任何帮助都将不胜感激。非常感谢你的阅读

我找到了我的docker映像未能通过Cloud Run健康检查的原因。毕竟,这与端口和IP地址无关,而是与运行状况检查过程的执行时间有关。
在部署映像后,运行状况检查过程似乎会立即启动,但在我的案例中,在部署到Cloud Run之后,启动spring boot tomcat服务器几乎需要30秒。

这导致了健康检查过程的失败,因此我也修复了立即启动tomcat服务器的设置,从而解决了我发布的问题。

您确定地址为0.0.0.0吗?如果它是localhost,它将无法在application.yml中工作,我将其设置为“server:address:${address:localhost}”,并将
address
env变量传递为“0.0.0.0”,作为Cloud Run revision的env变量,所以我认为应该将其设置为“0.0.0”。我将检查这种方式是否可以设置服务器地址,以防万一。它不应该只是
${address}
那么?你在云日志中有什么信息?到Lemos;我也试过了,但没用。。。