Развертывание WAR в OpenShift
У меня есть Java . WAR файл, который мне нужно разместить с MySQL DB. Может кто-нибудь помочь с точной процедурой размещения его в OpenShift? А как сделать соединение из приложения в БД?
1 ответ
Предполагая, что вы используете Maven для создания приложения и запускаете его в OpenShift Online, вы можете использовать встроенный шаблон Java. Используйте "Добавить в проект" и выберите "Java" и выберите "Открыть JDK". Он запрашивает у вас имя и git url для вашего кода. Вы должны начать с использования URL-адреса git, который предлагает посмотреть, как их пример кода создается maven и запускается в Openshift.
Если вам не нравится, как их код собирается / запускается, тогда я написал демо-версию Java, которая создает WAR-файл, а затем велит Openshift запустить WAR-файл, используя tomcat7-maven-plugin
, Файл POM имеет профиль openshift maven, который использует tomcat7 для запуска WAR, который вы можете увидеть здесь. Этот профиль включен по умолчанию в стандартном шаблоне Openshift OpenJDK.
После запуска Java-кода рекомендуется развернуть базу данных MySQL в качестве отдельного модуля / службы в своем проекте. Таким образом, вы можете масштабировать ваши Java-модули независимо от вашей базы данных. Еще раз вы можете использовать встроенные шаблоны Openshift Online. Выберите "Добавить в проект", "Хранилища данных", "MySQL (постоянные)" и используйте значения по умолчанию.
Последняя часть - как подключить ваше Java-приложение к вашей базе данных. Здесь вы находитесь в очень надежных руках с OpenShift. Как мы видим здесь, OpenShift имеет в качестве внутреннего DNS, который публикует IP любого сервиса. Когда я запускал шаблон mysql, он создавался как сервис "mysql". Это тогда опубликовано в DNS как <service>.<pod_namespace>.svc.cluster.local
, Пространство имен pod - это проект openshift. Так что в моем случае мой демонстрационный код OpenShift называется thinbus-srp-spring-demo
поэтому модуль Java может подключаться к службе mysql, используя имя DNS mysql.thinbus-srp-spring-demo.svc.cluster.local
, Поэтому я могу настроить это как имя хоста базы данных в строке подключения JDBC.
В этих инструкциях рассказывается, как использовать мышь, и предполагается, что вы используете экземпляр OpenShift с установленными шаблонами OpanJDK и MySql. Вам на самом деле не нужно ничего из этого. Вы можете создать свой собственный шаблон с полным решением. Это довольно сложная тема, поэтому я не буду освещать это в этом ответе.