-
-
Save alfawal/7d4de9bdc86dd0924447830e6b5aeb21 to your computer and use it in GitHub Desktop.
Docker helper script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
BLUE="\\033[1;34m" | |
GREEN="\\033[1;32m" | |
NORMAL="\\033[0;39m" | |
RED="\\033[1;31m" | |
print_help() { | |
echo -e "${BLUE}Available environments${NORMAL}" | |
echo " - DEV (default)" | |
echo " - PROD" | |
echo " - STAGING" | |
echo "" | |
echo -e "${BLUE}Available commands${NORMAL}" | |
echo -e " > build \t\t Build or rebuild services" | |
echo -e " > django [:command] \t Run a django-specific command" | |
echo -e " > docker [:command] \t Run a docker command" | |
echo -e " > logs [:service] \t View output from containers" | |
echo -e " > runserver \t\t Run development server" | |
echo -e " > shell \t\t Connect to a BASH session from the service inside" | |
echo -e " > start \t\t Create and start containers" | |
echo -e " > status \t\t List containers" | |
echo -e " > stop \t\t Stop services" | |
} | |
docker_command() { | |
command="docker-compose -f docker-compose.yml " | |
if [ ${ENV} = "PROD" ] | |
then | |
file_prefix="prod" | |
elif [ ${ENV} = "STAGING" ] | |
then | |
file_prefix="staging" | |
else | |
file_prefix="dev" | |
fi | |
command+="-f docker-compose.${file_prefix}.yml ${@}" | |
echo -e "${BLUE} Command: ${NORMAL}${command}" | |
echo -e "" | |
eval ${command} | |
} | |
build() { | |
docker_command build | |
} | |
django() { | |
docker_command run --rm backend python manage.py ${@} | |
} | |
docker() { | |
docker_command ${@} | |
} | |
logs() { | |
docker_command logs -f --tail 50 ${@} | |
} | |
runserver() { | |
docker_command run --rm --service-ports backend | |
} | |
shell() { | |
docker_command run --rm backend bash | |
} | |
status() { | |
docker_command ps | |
} | |
start() { | |
docker_command up -d | |
} | |
stop() { | |
docker_command stop | |
} | |
if [ -z ${1} ] | |
then | |
print_help | |
else | |
case ${ENV} in | |
"PROD") | |
env_str="production" | |
;; | |
"STAGING") | |
env_str="staging" | |
;; | |
*) | |
env_str="development" | |
;; | |
esac | |
echo -e "${BLUE}Environment:${NORMAL} ${env_str}" | |
${@} | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment