name: camellya-ps

services:
  camellya-config-server:
    image: camellya-config-server:1.3.0-SNAPSHOT
    depends_on:
      camellya-postgres:
        condition: service_healthy
    ports:
      - '10001:10001'
    volumes:
      - "./docker/configserver.toml:/app/configserver.toml"
      - "./assets/config:/app/assets/config"
  camellya-login-server:
    image: camellya-login-server:1.3.0-SNAPSHOT
    depends_on:
      camellya-postgres:
        condition: service_healthy
    ports:
      - '5500:5500'
    volumes:
      - "./docker/loginserver.toml:/app/loginserver.toml"
  camellya-gateway-server:
    image: camellya-gateway-server:1.3.0-SNAPSHOT
    depends_on:
      camellya-postgres:
        condition: service_healthy
    ports:
      # Uncomment this if you want to have manual access
      #      - '10003:10003'
      - '7777:7777/udp'
    volumes:
      - "./docker/gateway.toml:/app/gateway.toml"
  camellya-game-server:
    image: camellya-game-server:1.3.0-SNAPSHOT
    depends_on:
      camellya-postgres:
        condition: service_healthy
    # Uncomment this if you want to have manual access
#    ports:
#      - '10004:10004'
    volumes:
      - "./docker/gameserver.toml:/app/gameserver.toml"
      - "./assets/logic:/app/assets/logic"
  camellya-postgres:
    image: postgres:16.4-alpine3.20
    user: postgres
    # Uncomment this if you want to have manual access
    ports:
      - '5432:5432'
    healthcheck:
      test: ["CMD-SHELL", "pg_isready"]
      interval: 10s
      timeout: 5s
      retries: 5
    environment:
      - "POSTGRES_PASSWORD=toor"
    volumes:
      - "./docker/postgres/scripts:/docker-entrypoint-initdb.d"
      - camellya-postgres-vol:/var/lib/postgresql/data
volumes:
  camellya-postgres-vol:
    external: true