Add docker_compose.yaml
This commit is contained in:
228
docker_compose.yaml
Normal file
228
docker_compose.yaml
Normal file
@@ -0,0 +1,228 @@
|
||||
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:
|
||||
Reference in New Issue
Block a user