Files
eveAI/docker/docker_env_switch.sh
2024-08-06 14:56:12 +02:00

57 lines
1.6 KiB
Bash
Executable File

#!/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"
alias dcdown="docker compose -f $COMPOSE_FILE down"
alias dcps="docker compose -f $COMPOSE_FILE ps"
alias dclogs="docker compose -f $COMPOSE_FILE logs"
echo "Docker environment switched to $1"
echo "You can now use 'docker-compose', 'dc', 'dcup', 'dcdown', 'dcps', and 'dclogs' commands"