繁体   English   中英

Openshift Spring Boot Docker映像和Postgres Pod

[英]Openshift Spring Boot Docker Image & Postgres Pod

我有一个Spring Boot Web API(简单的数据库连接),我想将它放在openshift上。 我可以使用docker在本地生成映像,然后使用oc port-forward将postgres pod的连接转发到我的localhost:3432,导致我的应用程序属性如下:

spring.datasource.url=jdbc:postgresql://localhost:5432/{dbname}
spring.datasource.username={dbuser}
spring.datasource.password={dbpassword}

适当替换名称和密码的位置。 有效地,这将我的本地版本连接到远程数据库。

我的问题是,当将Docker容器推入OSE时,这些连接属性应设置为什么才能将远程应用程序连接到远程数据库? 最初,我以为我会公开带有路由的Postgres服务,并将数据源URL设置为该路由。 但是,在运行docker映像时,我仍然收到连接被拒绝的信息。 我的dockerfile很简单,如下所示:

FROM openjdk:8-jre-alpine
COPY ./zeus-service-api/target/zeus-service-api-1.0-SNAPSHOT-exec.jar /usr/src/zeus-service/
WORKDIR /usr/src/zeus-service
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "zeus-service-api-1.0-SNAPSHOT-exec.jar"]

将springboot应用程序部署到OpenShift而不是Local时,可以使用环境变量或连接信息。 要查找此信息(env变量),请单击一个progres部署,然后单击“环境”,它将显示要使用的环境变量。 我看到许多开发人员在本地设置这些环境变量,因此,当他们将部署转移到平台时,他们不必更改代码。

查找所有这些信息的另一种方法是通过Web控制台打开一个终端会话以postgres pod并运行以下命令:

h-4.2$ env |grep POSTGRES
POSTGRESQL_PORT_5432_TCP_ADDR=172.30.248.18
POSTGRESQL_PORT=tcp://172.30.248.18:5432
POSTGRESQL_SERVICE_PORT_POSTGRESQL=5432
POSTGRESQL_PORT_5432_TCP=tcp://172.30.248.18:5432
POSTGRESQL_SERVICE_HOST=172.30.248.18
POSTGRESQL_DATABASE=sampledb
POSTGRESQL_PASSWORD=xcUmSHIJudu421v0
POSTGRESQL_PORT_5432_TCP_PORT=5432
POSTGRESQL_VERSION=9.6
POSTGRESQL_PREV_VERSION=9.5
POSTGRESQL_SERVICE_PORT=5432
POSTGRESQL_USER=user455
POSTGRESQL_PORT_5432_TCP_PROTO=tcp
sh-4.2$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM