diff --git a/docker/README.md b/docker/README.md index c94563b17..2f70179c8 100644 --- a/docker/README.md +++ b/docker/README.md @@ -14,13 +14,15 @@ To install AzerothCore using Docker, you have to follow these steps (**respectin 1) Install [Docker](https://docs.docker.com/install/). -2) Launch one instance of the [AzerothCore Dockerized Database](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/database) +2) Create a Docker Network: `docker network create ac-network`. All your docker containers will use it to communicate to each other. -3) Create an image of the [AzerothCore Dockerized Build](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build) +3) Launch one instance of the [AzerothCore Dockerized Database](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/database) -4) Launch one instance of the [AzerothCore Dockerized Authserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/authserver) +4) Create an image of the [AzerothCore Dockerized Build](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build) -5) Launch one instance of the [AzerothCore Dockerized Worldserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/worldserver) +5) Launch one instance of the [AzerothCore Dockerized Authserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/authserver) + +6) Launch one instance of the [AzerothCore Dockerized Worldserver](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/worldserver) ### Memory usage diff --git a/docker/authserver/README.md b/docker/authserver/README.md index dcc65dbb3..44f1637e1 100644 --- a/docker/authserver/README.md +++ b/docker/authserver/README.md @@ -8,6 +8,8 @@ This provides a way to launch a container with the AzerothCore authserver runnin - You need to first build the [AzerothCore Build Image](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build). +- If you haven't created a docker network yet, create it by simply using `docker network create ac-network`. + - You have to copy the file `docker/authserver/etc/authserver.conf.dockerdist` and rename the copied file to `docker/authserver/etc/authserver.conf`. Then open it and change the values where needed (you may need to change the DB port). ## Building the container image @@ -21,10 +23,11 @@ To build the container image you have to be in the **main** folder of your local ## Run the container ``` -docker run --name azt-authserver \ +docker run --name ac-auth-container \ --mount type=bind,source="$(pwd)"/docker/authserver/etc/,target=/azeroth-server/etc \ --mount type=bind,source="$(pwd)"/docker/authserver/logs/,target=/azeroth-server/logs \ - --network host \ + -p 127.0.0.1:3724:3724 \ + --network ac-network \ -it azerothcore/authserver ``` diff --git a/docker/authserver/etc/authserver.conf.dockerdist b/docker/authserver/etc/authserver.conf.dockerdist index 4f8e8710f..a2b6d9a3f 100644 --- a/docker/authserver/etc/authserver.conf.dockerdist +++ b/docker/authserver/etc/authserver.conf.dockerdist @@ -4,10 +4,16 @@ [authserver] # Do not change this -LogsDir = "/azeroth-server/logs" +LogsDir = "/azeroth-server/logs" # will reflect on your host directory: docker/worldserver/logs -# Change this configuration accordingly with your setup -LoginDatabaseInfo = "127.0.0.1;3600;root;password;acore_auth" +# 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-db-container;3306;root;password;acore_auth" -# Add more configuration overwrites +# Add more configuration overwrites by copying settings from from authserver.conf.dist LogLevel = 3 +SQLDriverLogFile = "SQLDriver.log" +SQLDriverQueryLogging = 1 + diff --git a/docker/database/README.md b/docker/database/README.md index ef0270fce..8468db8a5 100644 --- a/docker/database/README.md +++ b/docker/database/README.md @@ -39,20 +39,27 @@ You can build the image using: Run the following command to launch a container: -`docker run --name azt-db -p 127.0.0.1:3306:3306 -e MYSQL_ROOT_PASSWORD=password azerothcore/database` +```docker run --name ac-db-container \ + -p 127.0.0.1:3306:3306 \ + -e MYSQL_ROOT_PASSWORD=password \ + --network ac-network \ + azerothcore/database +``` Where: -`--name` is followed by a container name like `azt-db`. Put whatever name you like, each container should have an unique name. +`--name` is followed by a container name like `ac-db-container`. Put whatever name you like, each container should have an unique name. `-p` (port) is followed by `IP_ADDRESS:EXTERNAL_PORT:INTERNAL_PORT`. - INTERNAL_PORT **must** always be 3306. -- EXTERNAL_PORT is the port that you will use to access the mysql-server that is running in your container +- EXTERNAL_PORT is the port that you will use to access the mysql-server from outside docker + +`--network` takes the name of the internal docker network. Containers must be on the same network to communicate to each other. **NOTE**: You may want to use an external port different than 3306 in case you have already mysql-server installed in your system (or some other service that is using that port). So you can use for example port 9000 with `-p 127.0.0.1:9000:3306` -`docker run --name azt-db -p 9000:3306 -e MYSQL_ROOT_PASSWORD=password azerothcore/database` +`docker run --name ac-db-container -p 9000:3306 -e MYSQL_ROOT_PASSWORD=password azerothcore/database` `-e MYSQL_ROOT_PASSWORD=password` lets you change the default password for the `root` user. @@ -74,9 +81,9 @@ You can easily run more instances. You just have to specify a different **name** Example: I want to launch three instances of the AzerothCore databases, each one listening respectively on port 9001, 9002 and 9003. I can do it with the following commands: -`docker run --name azt-db-1 -p 127.0.0.1:9001:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` -`docker run --name azt-db-2 -p 127.0.0.1:9002:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` -`docker run --name azt-db-3 -p 127.0.0.1:9003:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` +`docker run --name ac-db-container-1 -p 127.0.0.1:9001:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` +`docker run --name ac-db-container-2 -p 127.0.0.1:9002:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` +`docker run --name ac-db-container-3 -p 127.0.0.1:9003:3306 -e MYSQL_ROOT_PASSWORD=password -d azerothcore/database` You can use the `docker ps` command to check your running containers. @@ -84,6 +91,6 @@ You can use the `docker ps` command to check your running containers. ## Stopping / removing -You can stop a container using `docker stop name-of-the container`, for example `docker stop azt-db-1`. +You can stop a container using `docker stop name-of-the container`, for example `docker stop ac-db-container-1`. -You can then remove the container using `docker rm name-of-the container`, for example `docker rm azt-db-1`. +You can then remove the container using `docker rm name-of-the container`, for example `docker rm ac-db-container-1`. diff --git a/docker/worldserver/README.md b/docker/worldserver/README.md index f45469252..4161ff554 100644 --- a/docker/worldserver/README.md +++ b/docker/worldserver/README.md @@ -8,6 +8,8 @@ This provides a way to launch a container with the AzerothCore authserver runnin - You need to first build the [AzerothCore Build Image](https://github.com/azerothcore/azerothcore-wotlk/tree/master/docker/build). +- If you haven't created a docker network yet, create it by simply using `docker network create ac-network`. + - You have to copy the file `docker/worldserver/worldserver.conf.dockerdist` and rename the copied file to `docker/worldserver/worldserver.conf`. Then open it and change the values where needed (you may need to change the DB port). - You need to have the **data files** somewhere in your system. If you don't have them yet, check the step ["Download the data files" from the installation guide](https://github.com/AzerothCore/azerothcore-wotlk/wiki/Installation#5-download-the-data-files). @@ -25,11 +27,12 @@ To build the container image you have to be in the **main** folder of your local Replace `/path/to/your/data` with the path of where your data folder is. ``` -docker run --name azt-worldserver \ - --mount type=bind,source=/mnt/70DD9E0635B3A813/azeroth-server/data,target=/azeroth-server/data \ +docker run --name ac-world-container \ + --mount type=bind,source=/path/to/your/data,target=/azeroth-server/data \ --mount type=bind,source="$(pwd)"/docker/worldserver/etc/,target=/azeroth-server/etc \ --mount type=bind,source="$(pwd)"/docker/worldserver/logs/,target=/azeroth-server/logs \ - --network host \ + -p 127.0.0.1:8085:8085 \ + --network ac-network \ -it azerothcore/worldserver ``` diff --git a/docker/worldserver/etc/worldserver.conf.dockerdist b/docker/worldserver/etc/worldserver.conf.dockerdist index ed3efac68..a746aa545 100644 --- a/docker/worldserver/etc/worldserver.conf.dockerdist +++ b/docker/worldserver/etc/worldserver.conf.dockerdist @@ -3,14 +3,17 @@ ################################################ [worldserver] -# Do not change those -LogsDir = "/azeroth-server/logs" +# Do NOT change those Dir configs +LogsDir = "/azeroth-server/logs" # will reflect on your host directory: docker/worldserver/logs DataDir = "/azeroth-server/data" -# Change those configuration accordingly with your setup -LoginDatabaseInfo = "127.0.0.1;3600;root;password;acore_auth" -WorldDatabaseInfo = "127.0.0.1;3600;root;password;acore_world" -CharacterDatabaseInfo = "127.0.0.1;3600;root;password;acore_characters" +# 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-db-container;3306;root;password;acore_auth" +WorldDatabaseInfo = "ac-db-container;3306;root;password;acore_world" +CharacterDatabaseInfo = "ac-db-container;3306;root;password;acore_characters" -# Add more configuration overwrites +# Add more configuration overwrites by copying settings from worldserver.conf.dist LogLevel = 2