laradock/laradock.sh

91 lines
2.7 KiB
Bash
Raw Normal View History

2017-07-15 21:40:25 +08:00
#!/bin/bash
2017-07-16 01:52:23 +08:00
2017-07-16 04:03:33 +08:00
# This shell script is an optional tool to simplify
# the installation and usage of laradock with docker-sync.
# To run, make sure to add permissions to this file:
# chmod 755 sync.sh
# Usage:
# Install docker-sync: ./sync.sh install
# Start workspace with nginx and mysql: ./sync.sh up nginx mysql
# Open bash inside the workspace: ./sync.sh bash
# Stop workspace: ./sync.sh down
# Force sync: ./sync.sh trigger
# Clean synced files: ./sync.sh clean
2017-07-16 01:52:23 +08:00
# prints colored text
print_style () {
2017-07-16 02:36:15 +08:00
2017-07-16 01:52:23 +08:00
if [ "$2" == "info" ] ; then
2017-07-16 02:24:01 +08:00
COLOR="96m";
2017-07-16 01:52:23 +08:00
elif [ "$2" == "success" ] ; then
2017-07-16 02:24:01 +08:00
COLOR="92m";
2017-07-16 01:52:23 +08:00
elif [ "$2" == "warning" ] ; then
2017-07-16 02:24:01 +08:00
COLOR="93m";
2017-07-16 01:52:23 +08:00
elif [ "$2" == "danger" ] ; then
2017-07-16 03:46:00 +08:00
COLOR="91m";
else #default color
COLOR="0m";
2017-07-16 01:52:23 +08:00
fi
2017-07-16 03:46:00 +08:00
STARTCOLOR="\e[$COLOR";
ENDCOLOR="\e[0m";
2017-07-16 02:24:01 +08:00
printf "$STARTCOLOR%b$ENDCOLOR" "$1";
2017-07-16 01:52:23 +08:00
}
2017-07-16 03:46:00 +08:00
display_options () {
printf "Available options:\n";
2017-07-16 04:24:49 +08:00
print_style " install" "info"; printf "\t\t Installs docker-sync gem on the host machine.\n";
2017-07-16 03:46:00 +08:00
print_style " up [services]" "success"; printf "\t Starts docker-sync and runs docker compose.\n";
2017-07-16 01:52:23 +08:00
print_style " down" "success"; printf "\t\t\t Stops containers and docker-sync.\n";
2017-07-16 04:24:49 +08:00
print_style " bash" "success"; printf "\t\t\t Opens bash on the workspace.\n";
2017-07-16 01:52:23 +08:00
print_style " trigger" "success"; printf "\t\t Manually triggers the synchronization of files.\n";
2017-07-16 04:24:49 +08:00
print_style " clean" "warning"; printf "\t\t Removes all files from docker-sync.\n";
2017-07-16 03:46:00 +08:00
}
2017-07-16 01:52:23 +08:00
2017-07-16 03:46:00 +08:00
if [[ $# -eq 0 ]] ; then
print_style "Missing arguments.\n" "danger";
display_options;
2017-07-15 21:40:25 +08:00
exit 1
fi
2017-07-15 21:46:52 +08:00
if [ "$1" == "up" ] ; then
2017-07-16 02:24:01 +08:00
print_style "Initializing Docker Sync\n" "info";
2017-07-16 03:46:00 +08:00
print_style "May take a long time (15min+) the first run\n" "info";
2017-07-16 02:41:35 +08:00
docker-sync start;
2017-07-16 03:46:00 +08:00
2017-07-16 02:41:35 +08:00
print_style "Initializing Docker Compose\n" "info";
shift; # removing first argument
2017-07-15 23:13:50 +08:00
docker-compose -f docker-compose.yml -f docker-compose.sync.yml up -d ${@};
2017-07-16 00:00:44 +08:00
2017-07-15 21:46:52 +08:00
elif [ "$1" == "down" ]; then
2017-07-16 02:36:15 +08:00
print_style "Stopping Docker Compose\n" "info";
2017-07-16 02:41:35 +08:00
docker-compose down;
2017-07-16 03:46:00 +08:00
2017-07-16 02:41:35 +08:00
print_style "Stopping Docker Sync\n" "info";
2017-07-15 21:44:09 +08:00
docker-sync stop;
2017-07-16 00:00:44 +08:00
2017-07-15 23:01:52 +08:00
elif [ "$1" == "install" ]; then
2017-07-16 02:36:15 +08:00
print_style "Installing docker-sync\n" "info";
2017-07-15 23:01:52 +08:00
gem install docker-sync;
2017-07-16 00:00:44 +08:00
2017-07-16 04:03:33 +08:00
elif [ "$1" == "bash" ]; then
docker-compose exec workspace bash;
2017-07-16 00:00:44 +08:00
elif [ "$1" == "trigger" ]; then
2017-07-16 02:36:15 +08:00
print_style "Manually triggering sync between host and docker-sync container.\n" "info";
2017-07-15 23:01:52 +08:00
docker-sync sync;
2017-07-16 00:00:44 +08:00
2017-07-15 23:01:52 +08:00
elif [ "$1" == "clean" ]; then
2017-07-16 02:36:15 +08:00
print_style "Removing and cleaning up files from the docker-sync container.\n" "warning";
2017-07-15 23:01:52 +08:00
docker-sync clean;
2017-07-16 00:00:44 +08:00
2017-07-16 04:03:33 +08:00
2017-07-15 21:46:52 +08:00
else
2017-07-16 03:46:00 +08:00
print_style "Invalid arguments.\n" "danger";
display_options;
exit 1
2017-07-15 21:40:25 +08:00
fi