220 lines
7.8 KiB
YAML
220 lines
7.8 KiB
YAML
# docker-compose.yml for AzerothCore.
|
|
#
|
|
# Start the server with `docker compose up -d --build`
|
|
#
|
|
# Don't make changes this file! make a `docker-compose.override.yml` and make your
|
|
# changes there instead.
|
|
|
|
services:
|
|
ac-database:
|
|
container_name: ac-database
|
|
image: mysql:8.4
|
|
networks:
|
|
- ac-network
|
|
ports:
|
|
- ${DOCKER_DB_EXTERNAL_PORT:-3306}:3306
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${DOCKER_DB_ROOT_PASSWORD:-password}
|
|
volumes:
|
|
- type: volume
|
|
source: ac-database
|
|
target: /var/lib/mysql
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: "/usr/bin/mysql --user=root --password=$$MYSQL_ROOT_PASSWORD --execute \"SHOW DATABASES;\""
|
|
interval: 5s
|
|
timeout: 10s
|
|
retries: 40
|
|
|
|
ac-db-import:
|
|
container_name: ac-db-import
|
|
image: acore/ac-wotlk-db-import:${DOCKER_IMAGE_TAG:-master}
|
|
networks:
|
|
- ac-network
|
|
build:
|
|
context: .
|
|
target: db-import
|
|
dockerfile: apps/docker/Dockerfile
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
environment:
|
|
AC_DATA_DIR: "/azerothcore/env/dist/data"
|
|
AC_LOGS_DIR: "/azerothcore/env/dist/logs"
|
|
AC_LOGIN_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_auth"
|
|
AC_WORLD_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_world"
|
|
AC_CHARACTER_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_characters"
|
|
volumes:
|
|
- ${DOCKER_VOL_ETC:-./env/dist/etc}:/azerothcore/env/dist/etc
|
|
# [osxfs optimization]: https://stackoverflow.com/a/63437557/1964544
|
|
- ${DOCKER_VOL_LOGS:-./env/dist/logs}:/azerothcore/env/dist/logs:delegated
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
|
|
ac-worldserver:
|
|
container_name: ac-worldserver
|
|
image: acore/ac-wotlk-worldserver:${DOCKER_IMAGE_TAG:-master}
|
|
build:
|
|
context: .
|
|
target: worldserver
|
|
dockerfile: apps/docker/Dockerfile
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
networks:
|
|
- ac-network
|
|
stdin_open: true
|
|
tty: true
|
|
restart: unless-stopped
|
|
env_file:
|
|
${DOCKER_AC_ENV_FILE:-conf/dist/env.ac}
|
|
environment:
|
|
AC_DATA_DIR: "/azerothcore/env/dist/data"
|
|
AC_LOGS_DIR: "/azerothcore/env/dist/logs"
|
|
AC_LOGIN_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_auth"
|
|
AC_WORLD_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_world"
|
|
AC_CHARACTER_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_characters"
|
|
AC_PLAYERBOTS_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_playerbots"
|
|
ports:
|
|
- ${DOCKER_WORLD_EXTERNAL_PORT:-8085}:8085
|
|
- ${DOCKER_SOAP_EXTERNAL_PORT:-7878}:7878
|
|
volumes:
|
|
- ${DOCKER_VOL_ETC:-./env/dist/etc}:/azerothcore/env/dist/etc
|
|
# [osxfs optimization]: https://stackoverflow.com/a/63437557/1964544
|
|
- ${DOCKER_VOL_LOGS:-./env/dist/logs}:/azerothcore/env/dist/logs:delegated
|
|
# client data
|
|
- ${DOCKER_VOL_DATA:-ac-client-data}:/azerothcore/env/dist/data/:ro
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
ac-db-import:
|
|
condition: service_completed_successfully
|
|
ac-client-data-init:
|
|
condition: service_completed_successfully
|
|
|
|
ac-authserver:
|
|
container_name: ac-authserver
|
|
image: acore/ac-wotlk-authserver:${DOCKER_IMAGE_TAG:-master}
|
|
build:
|
|
context: .
|
|
target: authserver
|
|
dockerfile: apps/docker/Dockerfile
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
networks:
|
|
- ac-network
|
|
tty: true
|
|
restart: unless-stopped
|
|
env_file:
|
|
${DOCKER_AC_ENV_FILE:-conf/dist/env.ac}
|
|
environment:
|
|
AC_LOGS_DIR: "/azerothcore/env/dist/logs"
|
|
AC_TEMP_DIR: "/azerothcore/env/dist/temp"
|
|
AC_LOGIN_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_auth"
|
|
volumes:
|
|
- ${DOCKER_VOL_ETC:-./env/dist/etc}:/azerothcore/env/dist/etc
|
|
# [osxfs optimization]: https://stackoverflow.com/a/63437557/1964544
|
|
- ${DOCKER_VOL_LOGS:-./env/dist/logs}:/azerothcore/env/dist/logs:delegated
|
|
ports:
|
|
- ${DOCKER_AUTH_EXTERNAL_PORT:-3724}:3724
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
ac-db-import:
|
|
condition: service_completed_successfully
|
|
|
|
ac-client-data-init:
|
|
container_name: ac-client-data-init
|
|
image: acore/ac-wotlk-client-data:${DOCKER_IMAGE_TAG:-master}
|
|
build:
|
|
context: .
|
|
target: client-data
|
|
dockerfile: apps/docker/Dockerfile
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
volumes:
|
|
- ${DOCKER_VOL_DATA:-ac-client-data}:/azerothcore/env/dist/data
|
|
|
|
# used for extracting maps from files shipped with game client
|
|
# Most of the time this shouldn't be needed
|
|
ac-tools:
|
|
container_name: ac-tools
|
|
image: acore/ac-wotlk-tools:${DOCKER_IMAGE_TAG:-master}
|
|
build:
|
|
context: .
|
|
target: tools
|
|
dockerfile: apps/docker/Dockerfile
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
working_dir: /azerothcore/env/client/
|
|
volumes:
|
|
# this is not the directory of the extracted data! It's the client folder used by the extractors
|
|
- ${DOCKER_AC_CLIENT_FOLDER:-./var/client}:/azerothcore/env/dist/bin/Data
|
|
# Activate with `docker compose --profile tools ...`
|
|
profiles: [tools]
|
|
|
|
# Dev server with the ./azerothcore folder binded from the host
|
|
# Please use Linux, WSL2 or any ext-compatible filesystem
|
|
# to avoid performance issues
|
|
#
|
|
# This is primarily intended for use with the "devcontainer" project
|
|
#
|
|
# This is provided primarily for development, though it doesn't receive
|
|
# first-class support
|
|
ac-dev-server:
|
|
tty: true
|
|
image: acore/ac-wotlk-dev-server:${DOCKER_IMAGE_TAG:-master}
|
|
build:
|
|
context: .
|
|
dockerfile: ./apps/docker/Dockerfile.dev-server
|
|
args:
|
|
USER_ID: ${DOCKER_USER_ID:-1000}
|
|
GROUP_ID: ${DOCKER_GROUP_ID:-1000}
|
|
DOCKER_USER: ${DOCKER_USER:-acore}
|
|
target: dev
|
|
env_file:
|
|
${DOCKER_AC_ENV_FILE:-conf/dist/env.ac}
|
|
environment:
|
|
AC_DATA_DIR: "/azerothcore/env/dist/data"
|
|
AC_LOGS_DIR: "/azerothcore/env/dist/logs"
|
|
AC_LOGIN_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_auth"
|
|
AC_WORLD_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_world"
|
|
AC_CHARACTER_DATABASE_INFO: "ac-database;3306;root;${DOCKER_DB_ROOT_PASSWORD:-password};acore_characters"
|
|
networks:
|
|
- ac-network
|
|
ports:
|
|
- ${DOCKER_AUTH_EXTERNAL_PORT:-3724}:3724
|
|
- ${DOCKER_WORLD_EXTERNAL_PORT:-8085}:8085
|
|
- ${DOCKER_SOAP_EXTERNAL_PORT:-7878}:7878
|
|
volumes:
|
|
- ${DOCKER_VOL_ROOT:-.}:/azerothcore:cached
|
|
# [osxfs optimization]: https://stackoverflow.com/a/63437557/1964544
|
|
- ac-build-dev:/azerothcore/var/build
|
|
- ac-ccache-dev:/azerothcore/var/ccache
|
|
# this is not the directory of the extracted data! It's the client folder used by the extractors
|
|
- ${DOCKER_AC_CLIENT_FOLDER:-./var/client}:/azerothcore/env/dist/bin/Data
|
|
# Activate with `docker compose --profile dev ...`
|
|
profiles: [dev]
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
|
|
volumes:
|
|
ac-database:
|
|
ac-client-data:
|
|
# Used for dev server
|
|
ac-build-dev:
|
|
ac-ccache-dev:
|
|
|
|
networks:
|
|
ac-network:
|