Sign inSign up

ijo42/launcher

By ijo42

•Updated about 5 years ago

MIGRATED TO https://hub.docker.com/r/ijo42/glauncher

0

215

ijo42/launcher repository overview

⁠GravitLauncherDockered

Что ты здесь делаешь?? уходи скорее, пока спишь по ночам спокойно!

Сегодня мы.. мы ставим 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.

⁠Самый простой пример запуска лаунчсервера в режиме CLI

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

Ничего сложного, не так ли?

Tag Summary

No tags have been pushed to this repository yet.