diff --git a/docker/authserver/Dockerfile b/docker/authserver/Dockerfile index c329a66cd09cf..d6c15a4633040 100644 --- a/docker/authserver/Dockerfile +++ b/docker/authserver/Dockerfile @@ -1,5 +1,7 @@ FROM ubuntu:bionic +# install the required dependencies to run the authserver RUN apt update && apt install -y libmysqlclient-dev libssl-dev libace-6.* libace-dev; +# run the authserver located in the directory "docker/authserver/bin" of the host machine CMD ["/azeroth-server/bin/authserver"] diff --git a/docker/build/Dockerfile b/docker/build/Dockerfile index 2ef8d35962e07..c4e18b8f38263 100644 --- a/docker/build/Dockerfile +++ b/docker/build/Dockerfile @@ -1,7 +1,9 @@ FROM ubuntu:bionic +# install the required dependencies to compile AzerothCore RUN apt update && apt install -y git cmake make gcc g++ clang libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libace-6.* libace-dev +# copy the sources from the host machine to the Docker container ADD .git /azerothcore/.git ADD deps /azerothcore/deps ADD conf/config.cmake.dist /azerothcore/conf/config.cmake.dist @@ -9,9 +11,15 @@ ADD src /azerothcore/src ADD CMakeLists.txt /azerothcore/CMakeLists.txt ENTRYPOINT cd azerothcore/build && \ + # run cmake cmake ../ -DCMAKE_INSTALL_PREFIX=/azeroth-server -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DTOOLS=0 -DSCRIPTS=1 && \ + # calculate the optimal number of threads MTHREADS=`grep -c ^processor /proc/cpuinfo`; MTHREADS=$(($MTHREADS + 2)) && \ + # run compilation make -j $MTHREADS && \ make install -j $MTHREADS && \ + # copy the binary files "authserver" and "worldserver" files back to the host + # - the directories "/binworldserver" and "/binauthserver" are meant to be bound to the host directories + # - see docker/build/README.md to view the bindings cp /azeroth-server/bin/worldserver /binworldserver && \ cp /azeroth-server/bin/authserver /binauthserver diff --git a/docker/database/Dockerfile b/docker/database/Dockerfile index 52f5549ce28bb..43ad6d4a2c012 100644 --- a/docker/database/Dockerfile +++ b/docker/database/Dockerfile @@ -1,7 +1,9 @@ FROM alpine:latest as builder +# install bash RUN apk add --no-cache bash +# copy the sources from the host machine COPY apps /azerothcore/apps COPY bin /azerothcore/bin COPY conf /azerothcore/conf @@ -9,10 +11,14 @@ COPY data /azerothcore/data COPY deps /azerothcore/deps COPY acore.json /azerothcore/acore.json +# run the AzerothCore database assembler RUN ./azerothcore/bin/acore-db-asm 1 FROM mysql:5.7 +# copy files from the previous build stage - see: https://docs.docker.com/develop/develop-images/multistage-build/ COPY --from=builder /azerothcore/env/dist/sql /sql +# adding the "generate-databases.sh" to the directory "/docker-entrypoint-initdb.d" +# because all scripts included in that directory will automatically be executed when the docker container starts ADD docker/database/generate-databases.sh /docker-entrypoint-initdb.d diff --git a/docker/worldserver/Dockerfile b/docker/worldserver/Dockerfile index 345b605955c96..d91dcf341d424 100644 --- a/docker/worldserver/Dockerfile +++ b/docker/worldserver/Dockerfile @@ -1,5 +1,7 @@ FROM ubuntu:bionic +# install the required dependencies to run the authserver RUN apt update && apt install -y libmysqlclient-dev libssl-dev libace-6.* libace-dev libreadline-dev; +# run the worldserver located in the directory "docker/worldserver/bin" of the host machine CMD ["/azeroth-server/bin/worldserver"]