#!/bin/bash # Function to display usage information usage() { echo "Usage: source $0 [dev|prod]" echo " dev : Switch to development environment" echo " prod : Switch to production environment" } # Check if the script is sourced if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then echo "Error: This script must be sourced, not executed directly." echo "Please run: source $0 [dev|prod]" exit 1 fi # Check if an argument is provided if [ $# -eq 0 ]; then usage return 1 fi # Set variables based on the environment case $1 in dev) DOCKER_CONTEXT="default" COMPOSE_FILE="compose_dev.yaml" ;; prod) DOCKER_CONTEXT="mxz536.stackhero-network.com" COMPOSE_FILE="compose_stackhero.yaml" ;; *) echo "Invalid environment. Use 'dev' or 'prod'." usage return 1 ;; esac # Switch Docker context echo "Switching to Docker context: $DOCKER_CONTEXT" docker context use $DOCKER_CONTEXT # Set the COMPOSE_FILE environment variable export COMPOSE_FILE=$COMPOSE_FILE echo "Set COMPOSE_FILE to $COMPOSE_FILE" # Define aliases for common Docker commands alias docker-compose="docker compose -f $COMPOSE_FILE" alias dc="docker compose -f $COMPOSE_FILE" alias dcup="docker compose -f $COMPOSE_FILE up -d --no-build --remove-orphans" alias dcdown="docker compose -f $COMPOSE_FILE down" alias dcps="docker compose -f $COMPOSE_FILE ps" alias dclogs="docker compose -f $COMPOSE_FILE logs" alias dcpull="docker compose -f $COMPOSE_FILE pull" alias dcrefresh="docker compose -f $COMPOSE_FILE pull" echo "Docker environment switched to $1" echo "You can now use 'docker-compose', 'dc', 'dcup', 'dcdown', 'dcps', 'dclogs' , dcpull or dcrefresh commands"