summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2021-04-22 09:57:05 +0200
committerGitHub <noreply@github.com>2021-04-22 09:57:05 +0200
commit380f406248bdc1f15227a7b2f8a75b4bf922f730 (patch)
tree497bb589f7bd80073ea755f14e33505ff572353b /env
parent4a8faafaff2753349ea15aa602cc3816f4e42de6 (diff)
Feat(Docker/bash): docker-compose system rework (#4488)
## ⚠️ATTENTION! ⚠️ Upgrading procedure: **Database:** After this PR will be merged you need to backup your DB first (you can use the db-assembler or any mysql client to generate the dump) and restore it after. The reason is that we use now docker named volumes instead of binded ones to improve performance. **Conf & client data**: if you use the default configuration, both the etc and the data folder are now available inside the **/env/docker**. Finally, you can cleanup the /docker folder previously used by our system. ## Changes Proposed: This PR will implement the [devcontainer ](https://code.visualstudio.com/docs/remote/containers) feature for VSCode. Allowing us to develop and debug directly within the container in the same way on all OSes. * Implemented support for vscode dev-container feature by remote-extension suite * Docker performance optimizations for MacOS and non-linux hosts * Bash system improvements * Implemented first command using Deno runtime environment (typescript) and [commander.js] * Implemented wait mechanism for db_assembler * Implemented db migration command * possibility to run the authserver and worldserver with GDB using the integrated simple-restarter * Implemented docker multi-stage mechanism to use one single Dockerfile for all the services * client-data downloader now creates a placeholder to avoid downloading the same version of data files multiple times * deployment of pre-compiled docker images on [docker hub](https://hub.docker.com/u/acore), you can test them [here](https://github.com/azerothcore/acore-docker)
Diffstat (limited to 'env')
-rw-r--r--env/docker/data/.gitkeep0
-rw-r--r--env/docker/etc/.gitkeep0
-rw-r--r--env/docker/etc/authserver.conf.dockerdist20
-rw-r--r--env/docker/etc/worldserver.conf.dockerdist23
-rw-r--r--env/docker/logs/.gitkeep0
5 files changed, 43 insertions, 0 deletions
diff --git a/env/docker/data/.gitkeep b/env/docker/data/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/env/docker/data/.gitkeep
diff --git a/env/docker/etc/.gitkeep b/env/docker/etc/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/env/docker/etc/.gitkeep
diff --git a/env/docker/etc/authserver.conf.dockerdist b/env/docker/etc/authserver.conf.dockerdist
new file mode 100644
index 0000000000..48a00fca22
--- /dev/null
+++ b/env/docker/etc/authserver.conf.dockerdist
@@ -0,0 +1,20 @@
+###############################################
+# AzerothCore Auth Server configuration file #
+###############################################
+[authserver]
+
+# Do not change this
+# Files in LogsDir will reflect on your host directory: docker/authserver/logs
+LogsDir = "/azerothcore/env/dist/logs"
+
+# Change this configuration accordingly with your docker setup
+# The format is "hostname;port;username;password;database":
+# - docker containers must be on the same docker network to be able to communicate
+# - the DB hostname will be the name of the database docker container
+LoginDatabaseInfo = "ac-database;3306;root;password;acore_auth"
+
+# Add more configuration overwrites by copying settings from from authserver.conf.dist
+LogLevel = 3
+SQLDriverLogFile = "SQLDriver.log"
+SQLDriverQueryLogging = 1
+
diff --git a/env/docker/etc/worldserver.conf.dockerdist b/env/docker/etc/worldserver.conf.dockerdist
new file mode 100644
index 0000000000..d59ffa2e1b
--- /dev/null
+++ b/env/docker/etc/worldserver.conf.dockerdist
@@ -0,0 +1,23 @@
+################################################
+# AzerothCore World Server configuration file #
+################################################
+[worldserver]
+
+# Do NOT change those Dir configs
+# Files in LogsDir will reflect on your host directory: docker/worldserver/logs
+LogsDir = "/azerothcore/env/dist/logs"
+DataDir = "/azerothcore/env/dist/data"
+
+# Change this configuration accordingly with your docker setup
+# The format is "hostname;port;username;password;database":
+# - docker containers must be on the same docker network to be able to communicate
+# - the DB hostname will be the name of the database docker container
+LoginDatabaseInfo = "ac-database;3306;root;password;acore_auth"
+WorldDatabaseInfo = "ac-database;3306;root;password;acore_world"
+CharacterDatabaseInfo = "ac-database;3306;root;password;acore_characters"
+
+# Add more configuration overwrites by copying settings from worldserver.conf.dist
+LogLevel = 2
+
+# Disable idle connections automatic kick since it doesn't work well on macOS + Docker
+CloseIdleConnections = 0
diff --git a/env/docker/logs/.gitkeep b/env/docker/logs/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/env/docker/logs/.gitkeep