mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-22 21:26:23 +00:00
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)
This commit is contained in:
36
deps/acore/bash-lib/src/git-utils/subrepo.sh
vendored
Normal file
36
deps/acore/bash-lib/src/git-utils/subrepo.sh
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
#!/usr/bin/env bash
|
||||
|
||||
|
||||
|
||||
CUR_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/"
|
||||
|
||||
echo "> Init and updating submodules..."
|
||||
|
||||
function subrepoUpdate() {
|
||||
repo=$1
|
||||
branch=$2
|
||||
folder=$3
|
||||
|
||||
toClone=$(git ls-remote --heads "$repo" "$branch" | wc -l)
|
||||
|
||||
if [[ -d "$folder" ]]; then
|
||||
if [[ ! -f "$folder/.gitrepo" ]]; then
|
||||
git subrepo init "$folder" -r "$repo" -b "$branch"
|
||||
fi
|
||||
|
||||
if [[ $toClone -eq 0 ]]; then
|
||||
git subrepo push "$folder"
|
||||
fi
|
||||
else
|
||||
# try-catch
|
||||
set +e
|
||||
git subrepo clone "$repo" "$folder" -b "$branch"
|
||||
set -e
|
||||
fi
|
||||
|
||||
git subrepo clean "$folder"
|
||||
git subrepo pull "$folder"
|
||||
git subrepo push "$folder" -s
|
||||
git subrepo clean "$folder"
|
||||
}
|
||||
12
deps/acore/bash-lib/src/git-utils/subtree.sh
vendored
Normal file
12
deps/acore/bash-lib/src/git-utils/subtree.sh
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
function subtreeFlow {
|
||||
local name=$1
|
||||
local path=$2
|
||||
local repo=$3
|
||||
local branch=$4
|
||||
local prefix="$path/$name"
|
||||
|
||||
echo "> Adding subtree if not exists"
|
||||
git subtree add --prefix "$prefix" "$repo" "$branch"
|
||||
echo "> Pulling latest changes from remote subtree"
|
||||
git subtree pull --prefix "$prefix" "$repo" "$branch"
|
||||
}
|
||||
Reference in New Issue
Block a user