С последней версией Docker вы можете достичь этого легко с помощью Докеры, докеры и докеры составляют. Подробнее об этих инструментах можно найти на сайте Docker.
Вернуться к описанию вашего рабочего процесса: для любого типичного приложения Java EE необходимы сервер приложений и сервер базы данных. Поскольку вы не упоминаете в своем сообщении о том, как настроена база данных, я бы предположил, что ваша среда разработки будет иметь отдельный сервер базы данных для каждого разработчика.
Принимая все это в предположение, я мог бы предложить следующий рабочий процесс:
- Построить базу Wildfly сервер приложений с официальным образом. Вы можете достичь этого путем: "Docker блату" команды
- Запустите сервер приложений базы с:
докер запустить -d -p 8080 -это: 8080 -p 9990: 9990 --name baseWildfly JBoss/wildfly
сервер приложений работает в настоящее время, необходимо настроить его для подключения к серверу базы данных, а также настроить параметры DataSource и другую конфигурацию, если для того, необходимые для запуска приложения Java EE. Для этого вам необходимо войти в Баш терминал контейнера JBoss:
докер ехес -i -t baseWildfly/бен/Баш/
Вы теперь в терминале контейнера. Вы можете настроить сервер приложений так же, как и для любой среды Linux.
Вы можете проверить конфигурацию, вручную развернув файл WAR в Wildfly. Это можно легко сделать с помощью консоли администратора или плагина maven или команды ADD, как вы сказали. Обычно я делаю это с помощью консоли администратора, просто для тестирования быстро. Когда вы убедитесь, что конфигурация работает, вы можете удалить файл WAR и создать снимок вашего контейнера:
докер фиксации --change «добавить параметры базы и конфигурации» baseWildfly yourRepository: тег
Теперь вы можете нажать созданное изображение в свой приватный репозиторий и поделиться им с вашей командой разработчиков. Теперь они могут вытащить изображение и запустить сервер приложений для развертывания сразу.
Мы не хотим разворачивать файл WAR для каждой сборки Maven с помощью консоли администратора, поскольку это слишком громоздко, поэтому следующей задачей является автоматизация его с помощью Docker Volume.
Предполагая, что вы настроили Maven для создания файла WAR в «../your_project/deployments/», вы можете связать, что в каталог развертывания JBoss контейнера следующим образом:
Docker запуска -d - р 8080: 8080 -v ../your_project/deployments:/opt/jboss/wildfly/standalone/deployments
Теперь, каждый раз, когда вы пересобрать приложение с Maven, сервер приложений будет проверять изменения и перераспределить ваш файл WAR.
Также весьма проблематично иметь отдельный сервер базы данных для каждого разработчика, поскольку они должны сами настраивать его в контейнере, потому что они могут иметь разные настройки (например, адрес, имя пользователя, пароль и т. Д.). Так что, в конце концов, это хорошо.
Предполагая, что вы используете Postgres в качестве вашего сервера db, вы можете вытащить его из официального хранилища postgres.Если у вас есть изображение готово, вы можете запустить сервер БД:
Docker пробег -d -p 5432: 5432 -t --name postgresDB Postgres
или запустить сервер базы данных со связанной "данные" каталога:
докер запустить -d -p 5432: 5432 -v ../your_postgres/data:/var/lib/postgresql -t --name postgresDB Postgres
Первая команда сохранит ваши данные в контейнере, а последняя сохранит ваши данные в env.
Теперь вы можете связать свой контейнер базы данных с Wildfly:
Docker запустить -d -p 8080: 8080 --link postgresDB: база данных -t baseWildfly
Ниже приводится выход ссылка:
Теперь у вас может быть такая же среда для всех членов команды разработчиков, и они могут начать кодирование с минимальной настройкой.
Эти же базовые изображения могут использоваться для производственной среды, так что всякий раз, когда вы хотите опубликовать новую версию, вам просто нужно скопировать файл WAR в папку «your_deployment» хоста.
Хорошо, что сервер приложений и сервер db-приложений - это то, что вы можете легко сгруппировать его в будущем, чтобы масштабировать его или применить высокую доступность.
спасибо. Итак, вы говорите, что каждый разработчик будет иметь среду, в которой приложение не будет внедрено, а после завершения кода, и пришло время для QA, тестирования пользователя, производства и т. Д. Вы добавили приложение в контейнер, добавив его в изображение например, с сервером CI. Как добавить приложение к изображению? Скопируете ли вы его из папки на сервере CI и используете команду «ADD»? – LuckyLuke