мы развертывается Докер-изображение, используя следующую команду:Bluemix Docker контейнеров результаты развертывания в «Нет маршрут пройдет»
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-загрузки, который использует Соединения- поставщик пула. Поставщик объединения соединений подключается к существующей PostgreSQL-базе данных, доступной на стандартном порту. Мы не используем ни одного имени домена для подключения к PostgreSQL-базе данных. Мы используем только IP-адрес и стандартный порт postgresql.
Развертывание работает на машине, которая использует стандартный демон демонстратора Docker, а также без проблем работает с Amazon WebServices (AWS) и использует тот же механизм развертывания.
Однако, если мы развертывания образа на Bluemix-Container-Service мы получаем следующее сообщение об ошибке при запуске приложения весна-загрузки:
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
Мы не знаем, почему это происходит, потому что, если мы делаем telnet на другой Bluemix-Docker-Machine на сервере PostgreSQL-Database с нужным портом, все в порядке.
Это очень раздражает, поскольку мы не можем использовать этот Docker-Image на Bluemix в настоящее время и в настоящее время препятствуем нашему запланированному развертыванию.
Вы можете помочь нам с подробностями, что может быть неправильно и как это исправить?
Любая помощь будет оценена по достоинству.
С уважением,
христианских
Спасибо за ваш ответ и комментарий. К сожалению, это немного разочаровывает, потому что на службе Docker в AWS или с помощью Docker непосредственно на одной из ваших внутренних систем все отлично с одним и тем же Docker-Image. Поэтому нам нужно внести некоторые изменения в Docker-Image для поддержки Bluemix. Я думаю, что это не идея независимого докер-образа. В любом случае у вас есть предложение/подсказка, чтобы подождать, пока не будет установлено сетевое соединение? –