
Лицензионное предисловие
Что бы ни происходило в этом блоге, это происходит только на моем локальном ноутбуке разработчика. И я твердо верю, что в отношении технологий Oracle это абсолютно подпадает под действие так называемого лицензионного соглашения для разработчиков OTN Free и лицензионного соглашения для двоичного кода Oracle для Java SE .
Я абсолютно уверен, что производственной среде нужна куча лицензий. Но я не специалист. Так что не спрашивайте меня. Если вы хотите использовать RHEL 7, пожалуйста, узнайте о подписках Red Hat .
Хорошо, WebLogic — где твой образ?
Не там. Я предполагаю по причинам лицензирования. Но Bruno проделал огромную работу, отправив соответствующие файлы Dockerfiles и скрипты на официальный аккаунт Oracle GitHub . Так. первый шаг в запуске WebLogic в Kubernetes — это создание образа докера с ним. Идти,
|
1
|
git clone https://github.com/oracle/docker |
и перейдите в папку OracleWebLogic. На самом деле, вы можете удалить все остальное, кроме этого. Первым шагом является загрузка установщика ZIP WebLogic и необходимого JDK.
Перейдите на веб-сайт Oracle , примите лицензию OTN (если хотите) и загрузите независимый от платформы установщик ZIP (wls1213_dev_update2.zip).
Теперь перейдите на веб-сайт загрузки JDK , выполните ту же процедуру лицензирования и загрузите JDK 8u51, что и rpm (jdk-8u51-linux-x64.rpm). Поместите оба в папку OracleWebLogic \ dockerfiles \ 1.2.1.3. Если вы работаете на Unix-подобной ОС, не стесняйтесь проверить официальную документацию и использовать предоставленные скрипты. Это не сработало для меня в Windows, так что вы проходите пошаговую инструкцию. Перейдите и переименуйте Dockerfile.developer в Dockerfile и удалите все остальные.
|
1
2
|
mv Dockerfile.developer Dockerfilerm Dockerfile.* |
Теперь вы открываете Dockerfile и меняете несколько вещей. Основывайтесь на 7-м РЕЛЕ:
|
1
|
FROM rhel7 |
И закомментируйте другую базу, которая там есть … И поскольку мы хотим запустить исправленную и доступную версию Java, мы соответственно изменим переменную среды:
|
1
|
ENV JAVA_RPM jdk-8u51-linux-x64.rpm |
Время построить наш имидж. И прежде чем начать, давайте повторно воспользуемся установщиком fabric8 vagrant, который я уже использовал для последних двух постов в блоге . Итак, сначала приведите ваш бродячий экземпляр с помощью OpenShift. Теперь пришло время построить образ WebLogic. Расслабьтесь и расслабьтесь, потому что это займет еще пару минут. У вас есть уборка? Это может быть подходящее время!
|
1
|
docker build --force-rm=true --tag="vagrant.f8:5000/oracle/weblogic:12.1.3-dev" . |
Готово? Проверьте, все ли там, где мы ожидаем: (изображения докера)
|
1
|
vagrant.f8:5000/oracle/weblogic 12.1.3-dev 68f1ea788bba About a minute ago 2.05 GB |
Поскольку этот образ содержит только двоичные файлы сервера, теперь нам нужно создать образ с настроенным доменом WLS. К счастью, в папке samples \ 12c-domain есть еще несколько скриптов. Итак, проверьте, имеет ли Dockerfile и все сценарии в контейнерах-сценариях правильный конец строки UNIX. Иногда Git может испортить их, если вы используете Windows. И если вы уже там, не забудьте изменить некоторые порты в соответствии с вашими потребностями. Мне пришлось изменить порт администратора на 8011 (сделать это в сценарии Dockerfile и add-machine.py. Еще одна вещь, которую мы хотим сделать, — запустить экземпляр в режиме разработки. Это позволяет нам просто скопировать наше приложение Java EE в папку ./autodeployment и разверните ее при запуске. Вы можете просто изменить атрибут в следующей строке с prod на dev:
|
1
|
setOption('ServerStartMode','dev') |
Теперь вы готовы к созданию образа домена разработки:
|
1
|
docker build --force-rm=true --tag="vagrant.f8:5000/myfear/weblogic:12.1.3-dev" |
И, после еще нескольких чашек кофе, мы готовы проверить, попало ли это изображение в наш репозиторий (изображения докеров)
|
1
|
vagrant.f8:5000/myfear/weblogic 12.1.3-dev 77a3ec07d176 9 minutes ago 2.052 GB |
Прежде чем идти дальше, обязательно попробуйте и посмотрите, подходит ли экземпляр Weblogic.
|
1
|
docker run -it myfear/weblogic:12.1.3-dev |
Если это сработало, вы готовы создать свой третий образ сегодня. Который будет содержать вашу заявку.
NetBeans и Fabric8 — перенесите WebLogic в греческое небо
Запустите NetBeans и создайте красивый, простой и компактный проект Java EE 6 из архетипа maven по вашему выбору. Добавьте к нему все зависимости от плагинов fabric8 и docker-maven, как я уже показывал в первом посте из этой серии . Давайте настроим свойства под наши нужды и назовем изображение: myfear / weblogic-test: latest. Самое главное, вы должны правильно сопоставить порт контейнера со службой Kubernetes:
|
01
02
03
04
05
06
07
08
09
10
11
|
<!-- Kubernetes Service Port // Mapped via the HARouter--><fabric8.service.port>9050</fabric8.service.port><!-- The exposed container port --><fabric8.service.containerPort>8011</fabric8.service.containerPort><!-- because, I'm working with the remote registry here, base it on the remote image --><docker.from>vagrant.f8:5000/myfear/weblogic:12.1.3-dev</docker.from><!-- Just cosmetics, changing the container label --><fabric8.label.container>weblogic</fabric8.label.container> |
Не забудьте использовать Java EE 6 в качестве зависимости и изменить как пользователя, так и базу развертывания в плагине docker-maven на:
|
1
2
|
<user>oracle:oracle:oracle</user><basedir>/u01/oracle/weblogic/user_projects/domains/base_domain/autodeploy/</basedir> |
Время построить третий и последний образ докера:
|
1
|
mvn clean install docker:build |
И если все закончится правильно, мы собираемся развернуть все в OpenShift с помощью инструмента Fabric8:
|
1
|
mvn fabric8:json fabric8:apply |
И не забудьте добавить отображение имени хоста в ваш файл hosts.
|
1
|
172.28.128.4 myfear-weblogic-test.vagrant.f8 |
Запрос http: //myfear-weblogic-test.vagrant.f8/sample показывает приложение после того, как вы подождали пару минут (по крайней мере, мне пришлось; похоже, мой ноутбук был недостаточно быстрым).
Некоторые дальнейшие замечания
Это не совсем готово к производству. WLS знает управляемые серверы и диспетчеры узлов, и существует множество портов для внешней связи, которые необходимо открыть. По сути, это не более чем развертывание подросткового приложения на AdminServer. Есть несколько технических документов и дальнейших идей о том, как настроить скрипты домена в соответствии с вашими потребностями. Я не хотел этого делать по понятным причинам. Итак, рассмотрим это как доказательство концепции.
| Ссылка: | WebLogic Server 12.1.3 на Kubernetes от нашего партнера по JCG Маркуса Эйзела ( Markus Eisele) из блога « Разработка программного обеспечения для предприятий с использованием Java» . |
