# Lineage 2 Essence — клиент protocol 520, PostgreSQL 17 # БД: login + game в одной БД. JAR Login/Game — в ./server (см. config/). services: postgres: image: postgres:17-alpine container_name: l2_postgres restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-l2user} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?Set POSTGRES_PASSWORD in .env} POSTGRES_DB: ${POSTGRES_DB:-l2essence} PGDATA: /var/lib/postgresql/data/pgdata ports: - "${POSTGRES_PORT:-5432}:5432" volumes: - postgres_data:/var/lib/postgresql/data - ./docker/initdb:/docker-entrypoint-initdb.d:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-l2user} -d ${POSTGRES_DB:-l2essence}"] interval: 5s timeout: 5s retries: 10 # Подключите сборку Samurai Crow / Mobius Essence (520): # положите login/game в ./server/login и ./server/game, раскомментируйте сервисы. login: profiles: ["l2"] image: ${L2_LOGIN_IMAGE:-eclipse-temurin:21-jre} container_name: l2_login restart: unless-stopped depends_on: postgres: condition: service_healthy working_dir: /opt/l2/login volumes: - ./server/login:/opt/l2/login - ./config/login:/opt/l2/login/config:ro ports: - "${L2_LOGIN_PORT:-2106}:2106" - "${L2_LOGIN_GS_PORT:-9014}:9014" command: ["bash", "-lc", "test -f ./LoginServer.jar && java -jar LoginServer.jar || echo 'Нет LoginServer.jar в server/login'; sleep infinity"] game: profiles: ["l2"] image: ${L2_GAME_IMAGE:-eclipse-temurin:21-jre} container_name: l2_game restart: unless-stopped depends_on: postgres: condition: service_healthy login: condition: service_started working_dir: /opt/l2/game volumes: - ./server/game:/opt/l2/game - ./config/game:/opt/l2/game/config:ro ports: - "${L2_GAME_PORT:-7777}:7777" command: ["bash", "-lc", "test -f ./GameServer.jar && java -jar GameServer.jar || echo 'Нет GameServer.jar в server/game'; sleep infinity"] volumes: postgres_data: