MIGRATED TO https://hub.docker.com/r/ijo42/glauncher
215
Что ты здесь делаешь?? уходи скорее, пока спишь по ночам спокойно!
Сегодня мы.. мы ставим GravitLauncher наиболее простым способом. Docker.
Что нам для этого понадобится..? Серверная машина (желательно, Linux дистрибутив), куда потребуется поставить Docker
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
Что нам нужно знать.. я собрал докер-имейдж, в котором содержится образ BellSoft Java 11, с минимальным кол-вом зависимостей, что получилось благодаря использованию Alpine linux и выпила большинства java module.
docker run -it -p 9274:9274 ijo42/launcher
Что мы тут делаем?
docker run - это запуск докер-контейнера
-it - два флага, необходимые для коннекта к запущенному контейнеру
-p 9274:9274 - маппим порт из контейнера наружу, что бы можно было подключиться к лаунчсерверу из вне
ijo42/launcher - название готового докер-имейджа
В данном примере мы можем запустить лаунчсервер, и даже слегка использовать для отладочных целей, но не более.
Зачем? Если у вас есть статичные файлы, можно смонтировать их в имейдж и забыть об их сущестовании и жить дальше. К примеру, можно смонтировать ключи, рантайм, конфиги
Для начала создаем папку ls и переносим в неё все, что хотим вмонтировать. Далее, склонируем репо и запустим скрипт билда:
git clone https://github.com/ijo42/GravitLauncherDockered/
cd GravitLauncherDockered/samples/
sh build.sh
У вас потребуют имя юзера, от имени которого будут происходить операции, его вы должны создать отдельно root под запретом!
Казалось бы, создали имейдж.. а что дальше? А дальше я рекомендую использовать docker-compose (пакет, который необходимо установить отдельно)
Можете воспользоваться готовым docker-compose файлом
А мы тем временем разберём его содержимое.
image: local/launchserver - используется уже готовый имейдж
tty,stdin_open - флаги, необходимые для работы аттача
mem_limit - hard-limit для запускаемого контейнера
ports - маппим порты для доступа из вне
volumes - самый интересный пункт файла, в котором задаются динамические файлы, такие как папка updates, profiles и различные конфигурации, требующие вмешательства
restart: always - задаем рестарт при выключении контейнера
После заполнения docker-compose.yml мы со смелым выражением лица берем и запускам контейнер. docker-compose -f docker-compose.yml up -d
Готово! Ваш лаунчсервер готов принимать первых игроков, а если захотите подключиться к CLI, можно воспользоваться командой docker attach launchserver, а для перезагрузки docker restart launchserver. Возрадуйтесь докеру!
Что стоит отметить отдельно, не стоит использовать в конфигурации лаунчсервера такие слова, как localhost, в связи с особенностями архитектуры докера, рекомендую использовать JSON или Request методы
Теперь так же можно собирать лаунчсервер на освнове commit history. Если вам необходимо собрать какой-то определенный коммит, это возможно!
Для начала необходимо склонить репозиторий
git clone https://github.com/ijo42/GravitLauncherDockered .
Затем, собираем как обычный докер-имейдж, указав аргумент сборки
docker build . -t local/launchserver --build-arg LAUNCHER_VERSION=a4355d1d
Так мы собрали лаунчсервер версии dev-5.1.8, но можно и рантайм собирать
docker build . -t local/launchserver --build-arg RUNTIME_VERSION=aa6fe1a8
Или совмещать
docker build . -t local/launchserver --build-arg LAUNCHER_VERSION=a4355d1d --build-arg RUNTIME_VERSION=aa6fe1a8
главное, что бы коммит не начинался с v
По умолчанию, для сборки используется артифакты последнего релиза, но что делать если хочется чего то другого? Конечно, в моем докер-хабе можно найти разные версии, но если захочется самому достаточно всего лишь...
Для начала необходимо склонить репозиторий
git clone https://github.com/ijo42/GravitLauncherDockered .
Затем, собираем как ... впрочем, вы уже знаете
docker build . -t local/launchserver --build-arg LAUNCHER_VERSION=v5.1.7
Напоследок, совместим с рантаймом
docker build . -t local/launchserver --build-arg LAUNCHER_VERSION=v5.1.7 --build-arg RUNTIME_VERSION=v1.4.0
Ничего сложного, не так ли?
No tags have been pushed to this repository yet.