91 lines
2.6 KiB
Bash
Executable File
91 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
DW_BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
|
|
APP_NAME=central_storage
|
|
APP_PARENT_FOLDER=apps
|
|
PROJECT_NAME=central_storage
|
|
|
|
while [ $# -gt 0 ]; do
|
|
case "$1" in
|
|
--target* | -u*)
|
|
if [[ "$1" != *=* ]]; then shift; fi # Value is next arg if no `=`
|
|
TARGET_ENV="${1#*=}"
|
|
;;
|
|
--help | -h)
|
|
printf "$BASE_NAME --target=<prod | alpha | dev>\n" # Flag argument
|
|
return 0
|
|
;;
|
|
*)
|
|
printf >&2 "Error: Invalid argument\n"
|
|
return 1
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [[ "${TARGET_ENV}" != "prod" && "${TARGET_ENV}" != "alpha" && "${TARGET_ENV}" != "dev" ]]; then
|
|
printf "$BASE_NAME --target=<prod | alpha | dev>\n" # Flag argument
|
|
return 0
|
|
fi
|
|
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
# git repo!
|
|
GIT_REPO_ROOT=$(git rev-parse --show-toplevel)
|
|
CODEBASE_ROOT=$GIT_REPO_ROOT/$APP_PARENT_FOLDER/$APP_NAME
|
|
WORKING_DIR=$GIT_REPO_ROOT/sites/$APP_NAME/deploy
|
|
|
|
else
|
|
# NOT a git repo!
|
|
printf "Please run this command under a git repo"
|
|
return 0
|
|
fi
|
|
|
|
. $DW_BASE_DIR/common/.host.env
|
|
|
|
|
|
DW_PUSHD_COUNTER=0
|
|
|
|
ENV_FOLDER=$WORKING_DIR/$TARGET_ENV
|
|
COMMON_ENV_FOLDER=$WORKING_DIR/common
|
|
|
|
|
|
pushd $WORKING_DIR
|
|
DW_PUSHD_COUNTER=$((DW_PUSHD_COUNTER + 1))
|
|
|
|
echo export APP_NAME=$APP_NAME > $WORKING_DIR/.env
|
|
echo export GIT_REPO_ROOT=$GIT_REPO_ROOT >> $WORKING_DIR/.env
|
|
echo export APP_PARENT_FOLDER=$APP_PARENT_FOLDER >> $WORKING_DIR/.env
|
|
|
|
cat $COMMON_ENV_FOLDER/.env >> $WORKING_DIR/.env
|
|
echo export CODEBASE_ROOT=$CODEBASE_ROOT >> $WORKING_DIR/.env
|
|
echo export WORKING_DIR=$WORKING_DIR >> $WORKING_DIR/.env
|
|
cat $COMMON_ENV_FOLDER/.host.env >> $WORKING_DIR/.env
|
|
cat $ENV_FOLDER/.env >>$WORKING_DIR/.env
|
|
DOCKER_COMPOSE_YAML=$WORKING_DIR/docker-compose-$APP_NAME.yaml
|
|
cp $DW_BASE_DIR/common/docker-compose.yaml $DOCKER_COMPOSE_YAML -u
|
|
|
|
. $WORKING_DIR/.env
|
|
|
|
sudo mkdir $DOCKER_BACKEND_LOG_HOME -p
|
|
|
|
sudo docker compose -p $PROJECT_NAME -f $DOCKER_COMPOSE_YAML --profile $TARGET_ENV down --remove-orphans
|
|
sudo docker compose -p $PROJECT_NAME -f $DOCKER_COMPOSE_YAML --profile $TARGET_ENV build --no-cache
|
|
|
|
# Clean up any previous resources that are not needed
|
|
# sudo docker system prune -f --volumes
|
|
# sudo docker image prune -f
|
|
# sudo docker container prune -f
|
|
# sudo docker network prune -f
|
|
|
|
# Start up the Docker containers in detached mode and remove orphans
|
|
sudo docker compose -p $PROJECT_NAME -f $DOCKER_COMPOSE_YAML --profile $TARGET_ENV up --detach --remove-orphans
|
|
echo 'You can use "sudo docker compose logs -f" to check the output of the containers'
|
|
sudo docker ps -a
|
|
|
|
#rm $WORKING_DIR/.env
|
|
#rm $DOCKER_COMPOSE_YAML
|
|
|
|
while [[ "$DW_PUSHD_COUNTER" -gt 0 ]]; do
|
|
DW_PUSHD_COUNTER=$((DW_PUSHD_COUNTER - 1))
|
|
popd
|
|
done
|
|
|