Статьи

Запуск образа WildFly Docker в OpenShift Origin

На новой неделе. В последнее время для меня было много путешествий, и это не скоро остановится. Но у меня есть некоторое время, чтобы попробовать OpenShift Origin и запустить его в моей среде Windows. Есть блог-пост начального уровня, как все настроить пару дней назад. Теперь пришло время просто запустить на нем ванильное изображение Docker.

Предпосылки

Получите вашу установку Origin и работает . И не забудьте также установить двоичные файлы OpenShift локально. Команда OpenShift выпустила «все в одном» на отдельном, удобном для разработчиков и хорошо выглядящем сайте через пару дней после моего поста. Итак, все, что вам нужно запомнить, это этот адрес:  http://www.openshift.org/vm/

Получите вашу среду OpenShift Up

Это единственная бродячая команда. Если это удалось, вы сможете получить доступ к локальной консоли администратора через браузер по адресу http: // localhost: 8443 /, а также войти в систему с помощью инструментов клиента из командной строки:

oc login http://localhost:8443

Используйте admin / admin в качестве имени пользователя / пароля.

Создайте проект и запустите WildFly

Первое, что нужно сделать, это создать новый проект OpenShift. Мы хотим отделить это немного от значения по умолчанию. В конце представьте себе пространство имен, в котором мы можем немного поиграть:

oc new-project wildfly-tests --description="WildFly and Docker on OpenShift v3" --display-name="WildFly Test Project"

OpenShift не предоставляет прямого доступа к демону Docker. Итак, вам нужно использовать инструмент командной строки oc для запуска образа. Некоторые (неподдерживаемые) изображения сообщества JBoss доступны и перечислены на  http://www.jboss.org/docker/ . Я заинтересован в запуске последней WildFly 9 для этого теста.

oc new-app --docker-image=jboss/wildfly

Если вы посмотрите веб-консоль, то увидите, что развертывание запущено, и образ Docker загружен.

В зависимости от вашего соединения, это может занять некоторое время. Но когда он закончится, вы увидите зеленую полосу с надписью «Работает», а также показывает IP-адрес. Посмотрим, все ли прошло хорошо, а экземпляр WildFly запущен и работает. Нам нужно увидеть журналы для нашего модуля. Давайте перечислим их:

oc get pods
NAME              READY     STATUS    RESTARTS   AGE
wildfly-1-jzvsj   1/1       Running   0          11m

и посмотреть логи:

oc logs wildfly-1-jzvsj

Обратите внимание, что имя модуля в вашей среде, скорее всего, будет другим. Команда должна выводить журналы WildFly так, как вы к ним привыкли. На данный момент у нас работает стручок. Теперь нам нужно открыть порт этого модуля через службу для внешнего мира. Но прежде всего нам нужно решить, через какое доменное имя мы хотим его выставить. Добавьте / измените файл hosts с помощью следующей записи:

127.0.0.1 wildfly.openshiftdev.local

И выполните следующую команду, чтобы добавить внешний маршрут к сервису:

oc expose service wildfly --hostname=wildfly.openshiftdev.local

Перейдите на вкладку сервисов в консоли и увидите, что маршрут создан для сервиса.

Теперь осталось только изменить правила переадресации портов в консоли VirtualBox. Добавьте порт 80 от хоста к гостю.

Теперь вы можете получить доступ к экземпляру WildFly через h ttp: //wildfly.openshiftdev.local/ . Поздравляем!

Поиск неисправностей

Если вы используете что-то еще, кроме all-in-vm, например, vagrant-изображение fabric8 , вам потребуется изменить параметры безопасности в OpenShift . Ssh в экземпляр, войдите через командную строку oc и отредактируйте настройки безопасности:

oc edit scc restricted

Измените стратегию runAsUser.Type на RunAsAny. Это позволяет изображениям работать в качестве корневого UID, если в Dockerfile не указан пользователь USER.