228 lines
7.9 KiB
YAML
228 lines
7.9 KiB
YAML
version: "3.9"
|
|
|
|
# extension field: https://docs.docker.com/compose/compose-file/compose-file-v3/#extension-fields
|
|
x-networks: &networks
|
|
networks:
|
|
- ac-network
|
|
|
|
x-ac-shared-conf: &ac-shared-conf
|
|
<<: *networks
|
|
working_dir: /azerothcore
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
|
|
services:
|
|
ac-database:
|
|
<<: *networks
|
|
image: mysql:8.0
|
|
restart: unless-stopped
|
|
cap_add:
|
|
- SYS_NICE # CAP_SYS_NICE
|
|
ports:
|
|
- ${DOCKER_DB_EXTERNAL_PORT:-63306}:3306
|
|
expose:
|
|
- 3306
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${DOCKER_DB_ROOT_PASSWORD:-password}
|
|
volumes:
|
|
- type: volume
|
|
source: ac-database
|
|
target: /var/lib/mysql
|
|
healthcheck:
|
|
test: '/usr/bin/mysql --user=root --password=$$MYSQL_ROOT_PASSWORD --execute "SHOW DATABASES;"'
|
|
interval: 2s
|
|
timeout: 40s
|
|
retries: 20
|
|
|
|
ac-worldserver:
|
|
container_name: acore-docker-ac-worldserver-1 # fixed container name to simplify the attach process
|
|
<<: *ac-shared-conf
|
|
stdin_open: true
|
|
tty: true
|
|
cap_add:
|
|
- SYS_NICE # CAP_SYS_NICE
|
|
image: acore/ac-wotlk-worldserver:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
restart: unless-stopped
|
|
privileged: true
|
|
user: ${DOCKER_USER:-acore}
|
|
ports:
|
|
- ${DOCKER_WORLD_EXTERNAL_PORT:-8085}:8085
|
|
- ${DOCKER_SOAP_EXTERNAL_PORT:-27878}:7878
|
|
expose:
|
|
- 8085
|
|
volumes:
|
|
- /mnt/user/appdata/azerothcore/scripts/lua:/azerothcore/env/dist/bin/lua_scripts/scripts
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/dbc:/azerothcore/env/dist/data/dbc:ro
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/maps:/azerothcore/env/dist/data/maps:ro
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/vmaps:/azerothcore/env/dist/data/vmaps:ro
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/mmaps:/azerothcore/env/dist/data/mmaps:ro
|
|
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_CLOSE_IDLE_CONNECTIONS: "0"
|
|
depends_on:
|
|
ac-eluna-ts-dev:
|
|
condition: service_started
|
|
ac-client-data:
|
|
condition: service_started
|
|
ac-db-import:
|
|
condition: service_completed_successfully
|
|
|
|
ac-authserver:
|
|
<<: *ac-shared-conf
|
|
tty: true
|
|
image: acore/ac-wotlk-authserver:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${DOCKER_AUTH_EXTERNAL_PORT:-3724}:3724
|
|
expose:
|
|
- 3724
|
|
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"
|
|
AC_SQLDRIVER_LOG_FILE: "SQLDriver.log"
|
|
AC_SQLDRIVER_QUERY_LOGGING: "1"
|
|
depends_on:
|
|
ac-database:
|
|
condition: service_healthy
|
|
ac-db-import:
|
|
condition: service_completed_successfully
|
|
|
|
ac-eluna-ts-dev:
|
|
image: acore/eluna-ts:master
|
|
# the build:lib is done in the healthcheck
|
|
command: sh -c "cd /eluna-ts/modules && touch index.ts && npm install && cd /eluna-ts && npm run dev"
|
|
# small workaround to make the other services to wait for the eluna-ts build
|
|
healthcheck:
|
|
test: sh -c "cd /eluna-ts/modules/eluna-ts && npm run build:lib && npm run build"
|
|
timeout: 60s
|
|
retries: 10
|
|
interval: 5s
|
|
start_period: 10s
|
|
restart: unless-stopped
|
|
volumes:
|
|
# from typescript
|
|
- /mnt/user/appdata/azerothcore/scripts/typescript:/eluna-ts/modules
|
|
# to lua
|
|
- /mnt/user/appdata/azerothcore/scripts/lua:/eluna-ts/dist/
|
|
|
|
ac-client-data:
|
|
<<: *networks
|
|
image: acore/ac-wotlk-client-data:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
volumes:
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/Cameras:/azerothcore/env/dist/data/Cameras
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/dbc:/azerothcore/env/dist/data/dbc
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/maps:/azerothcore/env/dist/data/maps
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/vmaps:/azerothcore/env/dist/data/vmaps
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/mmaps:/azerothcore/env/dist/data/mmaps
|
|
|
|
ac-db-import:
|
|
<<: *ac-shared-conf
|
|
image: acore/ac-wotlk-worldserver:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
command: ./env/dist/bin/dbimport
|
|
environment:
|
|
AC_DISABLE_INTERACTIVE: "1"
|
|
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_CLOSE_IDLE_CONNECTIONS: "0"
|
|
#profiles: [db-import]
|
|
|
|
ac-dev-database:
|
|
image: mysql:8.0
|
|
restart: unless-stopped
|
|
profiles: [dev]
|
|
cap_add:
|
|
- SYS_NICE # CAP_SYS_NICE
|
|
ports:
|
|
- ${DOCKER_DB_EXTERNAL_PORT:-63300}:3306
|
|
- ${DOCKER_WORLD_EXTERNAL_PORT:-8085}:8085
|
|
- ${DOCKER_SOAP_EXTERNAL_PORT:-27878}:7878
|
|
- ${DOCKER_AUTH_EXTERNAL_PORT:-3724}:3724
|
|
expose:
|
|
- 3306
|
|
environment:
|
|
- MYSQL_ROOT_PASSWORD=${DOCKER_DB_ROOT_PASSWORD:-password}
|
|
volumes:
|
|
- type: volume
|
|
source: ac-dev-database
|
|
target: /var/lib/mysql
|
|
healthcheck:
|
|
test: '/usr/bin/mysql --user=root --password=$$MYSQL_ROOT_PASSWORD --execute "SHOW DATABASES;"'
|
|
interval: 2s
|
|
timeout: 40s
|
|
retries: 20
|
|
networks:
|
|
ac-dev-network:
|
|
aliases:
|
|
- ac-database # needed by the server *.conf file
|
|
|
|
ac-dev-server:
|
|
tty: true
|
|
privileged: true
|
|
user: root
|
|
image: acore/ac-wotlk-dev-server:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
environment:
|
|
DATAPATH: "/azerothcore/env/dist/data"
|
|
DOCKER_ETC_FOLDER: "env/dist/etc"
|
|
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_DATA_DIR: "/azerothcore/env/dist/data"
|
|
AC_LOGS_DIR: "/azerothcore/env/dist/logs"
|
|
profiles: [dev]
|
|
volumes:
|
|
- /mnt/user/appdata/azerothcore/ac-dev-server:azerothcore
|
|
- /mnt/user/appdata/azerothcore/var/shared:/azerothcore/var/shared
|
|
# network_mode: service:ac-dev-database
|
|
working_dir: /azerothcore
|
|
depends_on:
|
|
ac-dev-database:
|
|
condition: service_healthy
|
|
networks:
|
|
- ac-dev-network
|
|
|
|
ac-dev-tools:
|
|
<<: *ac-shared-conf
|
|
image: acore/ac-wotlk-tools:${DOCKER_IMAGE_TAG:-7.0.0-dev.1}
|
|
working_dir: /azerothcore/env/client/
|
|
cap_add:
|
|
- SYS_NICE # CAP_SYS_NICE
|
|
volumes:
|
|
- /mnt/user/appdata/azerothcore/env/client/Data:/azerothcore/env/client/Data
|
|
- /mnt/user/appdata/azerothcore/env/dist/data/Cameras:/azerothcore/env/dist/data/Cameras
|
|
- /mnt/user/appdata/azerothcore/env/client/dbc:/azerothcore/env/client/dbc
|
|
- /mnt/user/appdata/azerothcore/env/client/maps:/azerothcore/env/client/maps
|
|
- /mnt/user/appdata/azerothcore/env/client/vmaps:/azerothcore/env/client/vmaps
|
|
- /mnt/user/appdata/azerothcore/env/client/mmaps:/azerothcore/env/client/mmaps
|
|
profiles: [dev]
|
|
|
|
phpmyadmin:
|
|
<<: *networks
|
|
image: phpmyadmin
|
|
ports:
|
|
- 8080:80
|
|
environment:
|
|
- PMA_ARBITRARY=1
|
|
profiles: [dev]
|
|
|
|
volumes:
|
|
ac-database:
|
|
ac-dev-server:
|
|
ac-dev-database:
|
|
ac-client-data-cameras:
|
|
ac-client-data-dbc:
|
|
ac-client-data-maps:
|
|
ac-client-data-vmaps:
|
|
ac-client-data-mmaps:
|
|
|
|
networks:
|
|
ac-network:
|
|
ac-dev-network: |