L2J Mobius High Five docker setup

This commit is contained in:
2026-09-11 11:54:14 +00:00
commit c2e35cf5ee
27741 changed files with 2714798 additions and 0 deletions
+73
View File
@@ -0,0 +1,73 @@
#!/usr/bin/env bash
# Приводит результат Ant-сборки Mobius к единой структуре:
# /out/login/ — всё для login-сервера (LoginServer.jar + config + libs)
# /out/game/ — всё для game-сервера (GameServer.jar + config + libs)
#
# Ant-таргеты "adding-core"/"adding-datapack" в build.xml собирают ВСЁ
# в один общий zip (build/<SUBDIR>.zip), а таргет cleanup удаляет
# промежуточный dist/. Поэтому источник истины — этот zip, а не
# исходная папка dist/ в репозитории (там jar-ов нет).
set -euo pipefail
BUILD_OUT="/build/build"
mkdir -p /out/login /out/game
ZIP_PATH=$(find "$BUILD_OUT" -maxdepth 1 -iname "*.zip" | head -n1)
if [ -z "$ZIP_PATH" ]; then
echo "!! Не найден собранный .zip в $BUILD_OUT"
echo "!! Содержимое $BUILD_OUT:"
find "$BUILD_OUT" -maxdepth 2 2>/dev/null || echo "(папка не существует)"
exit 1
fi
echo ">> найден собранный архив: $ZIP_PATH"
mkdir -p /tmp/extracted
cd /tmp/extracted
unzip -q "$ZIP_PATH"
echo ">> содержимое распакованного архива:"
find /tmp/extracted -maxdepth 3
EXTRACTED_ROOT="/tmp/extracted"
if [ -d "$EXTRACTED_ROOT/dist" ]; then
EXTRACTED_ROOT="$EXTRACTED_ROOT/dist"
fi
echo ">> используем корень: $EXTRACTED_ROOT"
if [ ! -d "$EXTRACTED_ROOT/login" ] || [ ! -d "$EXTRACTED_ROOT/game" ]; then
echo "!! Не нашёл login/ или game/ внутри архива. Полное содержимое:"
find /tmp/extracted
exit 1
fi
rsync -a "$EXTRACTED_ROOT/login"/ /out/login/
rsync -a "$EXTRACTED_ROOT/game"/ /out/game/
if [ -d "$EXTRACTED_ROOT/libs" ]; then
echo ">> копирую общие libs/ в оба out"
mkdir -p /out/login/libs /out/game/libs
rsync -a "$EXTRACTED_ROOT/libs"/ /out/login/libs/
rsync -a "$EXTRACTED_ROOT/libs"/ /out/game/libs/
fi
find /out -iname "*-sources.jar" -delete
# SQL-схемы для установки БД (login/accounts + game/characters и т.д.)
if [ -d "$EXTRACTED_ROOT/db_installer/sql" ]; then
echo ">> копирую SQL-схемы из db_installer/sql"
mkdir -p /out/sql
rsync -a "$EXTRACTED_ROOT/db_installer/sql"/ /out/sql/
fi
echo ">> /out/login contents:"
find /out/login -maxdepth 2
echo ">> /out/game contents:"
find /out/game -maxdepth 2
echo ">> jar files in /out:"
find /out -iname "*.jar"
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/env bash
# Выгружает полный /out (login+game+sql) из свежего l2j-build образа
# на хост, в reference/ — для удобного просмотра дефолтных файлов
# и выборочного копирования нужного в config/*/config/.
set -euo pipefail
cd "$(dirname "$0")/.."
rm -rf reference
mkdir -p reference
docker run --rm -v "$(pwd)/reference:/dest" l2j-build:latest sh -c "cp -r /out/* /dest/"
echo ">> Готово. Дефолтные файлы сервера теперь в ./reference/"
echo ">> login: ./reference/login/"
echo ">> game: ./reference/game/"
echo ">> sql: ./reference/sql/"