Social Icons

.

понедельник, 8 мая 2017 г.

Docker для Wildfly

Докер образ для Wildfly отличного качества дежит на Docker hub. На этом можно было бы и остановиться, но неплохо бы его чуть подстроить под свои нужды. А именнно:
  • Завести своего пользователя
  • Настроить конфигурацию 
  • Добавить дополнительные библиотеки или фреймворки
Вся работа на 5 минут.

1. Создаем новый файл с именем Dockerfile без расширения
2. Рядом с ним (в той же папке), размещаем файлы для размещения в образе. В данном случае:
  • module.xml
  • postgresql-42.1.4.jar
  • standalone.xml
 3. Заполняем файл следующими командами:

FROM jboss/wildfly

RUN /opt/jboss/wildfly/bin/add-user.sh --silent=true mschain "******" ManagementRealm

ADD postgresql-42.1.4.jar /opt/jboss/wildfly/modules/org/postgresql/main/postgresql-42.1.4.jar
ADD module.xml /opt/jboss/wildfly/modules/org/postgresql/main/module.xml
ADD standalone.xml /opt/jboss/wildfly/standalone/configuration/standalone.xml

CMD ["/opt/jboss/wildfly/bin/standalone.sh", "-b", "0.0.0.0", "-bmanagement", "0.0.0.0"]

3.1 Указываем  базовый образ
3.2 Выполняем команду wildfly по создангию пользователя в silent режиме. Обратить внимание, что пароль заключен в кавычки!!!
3.3 Добавляем дополнительные файлы. В данном случае, файлы конфигурации wildfly и jdbc драйвера для postgresql (как настраивать эти файлы смотри в других статьях). обратить внимание: параметры ADD "перевернуты". Не "как принято" куда-откуда, а откуда-куда.
3.4 Указываем команду запуска wildfly. Она будет выполнятся после запуска контейнера.
4. Загружаем образ из хаба
docker pull jboss/wildfly
5. Строем образ, не забываем ему присвоить уникальное имя. Обратите внимание на точку в конце. Это путь к текущей дирректории, из которой выполняется команда и в которой лежит весь описанный бардак.
docker build -t jboss/wildfly:wwCustom .
6.  Запускаем образ в контейнере
docker run -it -p 58080:8080 -p 9990:9990 --name wwCustom jboss/wildfly:wwCustom
Тут вот прямо много важного.
-it - означает при запуске открыть консоль вывода, на которой можно будет наслаждаться логом старта сервера
-p означает проброс портов хостовой машины (на которой развернут докер) на контейнер внутри него. Т.е. в данном примере, внешняя система будет обращатся на порт 58080 вместо привычного 8080.
7. Убедивышись в успешном старте (а другого и быть не может :-) ) для выхода из консоли следует использовать CTRL-p + CTRL-Q. Или CTRL - С что бы прервать работу (
и остановить контейнер)

Dockerfile

Комментариев нет:

Отправить комментарий

 

Так говорил Учитель:

У хорошо написанной программы есть свой собственный рай, у плохо написанной — свой собственный ад.

Russian Developer

Взгляд его светел, усилия праведны, старания бесплодны, дело безнадежно ...