diff options
author | Yehonal <yehonal.azeroth@gmail.com> | 2021-04-22 09:57:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-22 09:57:05 +0200 |
commit | 380f406248bdc1f15227a7b2f8a75b4bf922f730 (patch) | |
tree | 497bb589f7bd80073ea755f14e33505ff572353b /apps/installer/includes/functions.sh | |
parent | 4a8faafaff2753349ea15aa602cc3816f4e42de6 (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 'apps/installer/includes/functions.sh')
-rw-r--r-- | apps/installer/includes/functions.sh | 33 |
1 files changed, 27 insertions, 6 deletions
diff --git a/apps/installer/includes/functions.sh b/apps/installer/includes/functions.sh index ff00f91e2c..1204362e7a 100644 --- a/apps/installer/includes/functions.sh +++ b/apps/installer/includes/functions.sh @@ -2,7 +2,7 @@ function inst_configureOS() { echo "Platform: $OSTYPE" case "$OSTYPE" in solaris*) echo "Solaris is not supported yet" ;; - darwin*) source "$AC_PATH_INSTALLER/includes/os_configs/osx.sh" ;; + darwin*) source "$AC_PATH_INSTALLER/includes/os_configs/osx.sh" ;; linux*) # If $OSDISTRO is set, use this value (from config.sh) if [ ! -z "$OSDISTRO" ]; then @@ -68,7 +68,6 @@ function inst_cleanCompile() { function inst_allInOne() { inst_configureOS - inst_updateRepo inst_compile dbasm_import true true true } @@ -153,7 +152,7 @@ function inst_module_install { if [[ "$b" != "none" ]]; then Joiner:add_repo "https://github.com/azerothcore/$res" "$res" "$b" && echo "Done, please re-run compiling and db assembly. Read instruction on module repository for more information" else - echo "Cannot install $res module: it doesn't exists or no version compatible with AC v$ACORE_VERSION are available" + echo "Cannot install $res module: it doesn't exists or no version compatible with AC v$ACORE_VERSION are available" fi echo ""; @@ -219,9 +218,31 @@ function inst_simple_restarter { } function inst_download_client_data { - local path="$AC_BINPATH_FULL" + # change the following version when needed + local VERSION=v10 + + echo "#######################" + echo "Client data downloader" + echo "#######################" + + # first check if it's defined in env, otherwise use the default + local path="${DATAPATH:-$AC_BINPATH_FULL}" + + dataVersionFile="$path/data-version" + + [ -f "$dataVersionFile" ] && source "$dataVersionFile" + + # create the path if doesn't exists + mkdir -p "$path" + + if [ "$VERSION" == "$INSTALLED_VERSION" ]; then + echo "Data $VERSION already installed. If you want to force the download remove the following file: $dataVersionFile" + return + fi echo "Downloading client data in: $path/data.zip ..." - curl -L https://github.com/wowgaming/client-data/releases/download/v10/data.zip > "$path/data.zip" \ - && unzip -o "$path/data.zip" -d "$path/" && rm "$path/data.zip" + curl -L https://github.com/wowgaming/client-data/releases/download/$VERSION/data.zip > "$path/data.zip" \ + && echo "unzip downloaded file..." && unzip -q -o "$path/data.zip" -d "$path/" \ + && echo "Remove downloaded file" && rm "$path/data.zip" \ + && echo "INSTALLED_VERSION=$VERSION" > "$dataVersionFile" } |