#!/bin/bash DW_BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" APP_NAME=content 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=\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=\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/apps/$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 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 cp $DW_BASE_DIR/common/docker-compose.yaml $WORKING_DIR . $WORKING_DIR/.env sudo mkdir $DOCKER_BACKEND_LOG_HOME -p sudo docker compose --profile $TARGET_ENV down --remove-orphans sudo docker compose --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 --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 $WORKING_DIR/docker-compose.yaml while [[ "$DW_PUSHD_COUNTER" -gt 0 ]]; do DW_PUSHD_COUNTER=$((DW_PUSHD_COUNTER - 1)) popd done