gpt4 book ai didi

spring - Bluemix Docker Container部署结果为 “No route to host”

转载 作者:行者123 更新时间:2023-12-02 21:26:45 24 4
gpt4 key购买 nike

我们正在使用以下命令部署docker-image:

cf ic run -p 8080 -m 512 -e SPRING_PROFILES_ACTIVE=test -e logging.config=classpath:logback-docker-test.xml --name <container-name> registry.eu-gb.bluemix.net/<repository_name>/<container-name>:latest

在该容器中,我们正在启动一个使用连接池提供程序的Java8 Spring-Boot应用程序。连接池提供程序连接到可在标准端口上访问的现有PostgreSQL数据库。我们不使用任何域名来连接PostgreSQL数据库。我们仅使用IP地址和标准的postgresql端口。

该部署正在使用标准Docker容器守护程序的机器上运行,并且在Amazon WebServices(AWS)上也没有任何问题并且使用相同的部署机制。

但是,如果将镜像部署到Bluemix-Container-Service,则在启动spring-boot应用程序时确实会收到以下错误:
Caused by: java.net.NoRouteToHostException: No route to host
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at org.postgresql.core.PGStream.<init>(PGStream.java:61)
at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:129)
at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:65)
at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:146)
at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:35)
at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22)
at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:47)
at org.postgresql.jdbc42.AbstractJdbc42Connection.<init>(AbstractJdbc42Connection.java:21)
at org.postgresql.jdbc42.Jdbc42Connection.<init>(Jdbc42Connection.java:28)
at org.postgresql.Driver.makeConnection(Driver.java:415)
at org.postgresql.Driver.access$100(Driver.java:47)
at org.postgresql.Driver$ConnectThread.run(Driver.java:325)
... 1 more

我们不知道为什么会这样,因为如果我们在另一个Bluemix-Docker-Machine上使用所需的端口在PostgreSQL-Database服务器上进行telnet,一切都会很好。

这非常令人讨厌,因为我们目前无法在Bluemix上使用此Docker-Image,并且目前阻碍了我们计划的推出。

您能否提供详细信息帮助我们,怎么解决?

任何帮助将不胜感激。

问候,

基督教

最佳答案

容器启动时会引发此错误吗?
如果是这样,Bluemix上的Docker / IBM容器在网络状态下大约需要30到60秒:在此阶段中,容器无法连接到网络。
实际上,这可能应该是您得到错误的根本原因:如果Java SpringBoot应用程序在容器仍处于联网阶段时尝试连接到PostgreSQL数据库,它将失败并显示此错误。
当容器完成联网阶段时,您应该在容器上运行您的应用程序(例如,通过检查PostgreSQL服务器可用性的bash脚本,或简单地配置springboot来管理此异常)

关于spring - Bluemix Docker Container部署结果为 “No route to host”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com