2017-07-15 15:40:25 +02:00
|
|
|
#!/bin/bash
|
2017-07-15 19:52:23 +02:00
|
|
|
|
2017-07-15 22:03:33 +02:00
|
|
|
# This shell script is an optional tool to simplify
|
|
|
|
# the installation and usage of laradock with docker-sync.
|
|
|
|
|
2017-07-16 00:32:05 +02:00
|
|
|
# Make sure that the DOCKER_SYNC_STRATEGY is set in the .env
|
|
|
|
# DOCKER_SYNC_STRATEGY=native_osx # osx
|
|
|
|
# DOCKER_SYNC_STRATEGY=unison # windows
|
|
|
|
|
2017-07-15 22:03:33 +02:00
|
|
|
# To run, make sure to add permissions to this file:
|
|
|
|
# chmod 755 sync.sh
|
|
|
|
|
2017-07-16 00:32:05 +02:00
|
|
|
# USAGE EXAMPLE:
|
2017-07-15 22:58:17 +02:00
|
|
|
# Install docker-sync: ./sync.sh install
|
|
|
|
# Start sync and services with nginx and mysql: ./sync.sh up nginx mysql
|
|
|
|
# Stop containers and sync: ./sync.sh down
|
2017-07-15 22:03:33 +02:00
|
|
|
|
2017-07-15 19:52:23 +02:00
|
|
|
# prints colored text
|
|
|
|
print_style () {
|
2017-07-15 20:36:15 +02:00
|
|
|
|
2017-07-15 19:52:23 +02:00
|
|
|
if [ "$2" == "info" ] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
COLOR="96m"
|
2017-07-15 19:52:23 +02:00
|
|
|
elif [ "$2" == "success" ] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
COLOR="92m"
|
2017-07-15 19:52:23 +02:00
|
|
|
elif [ "$2" == "warning" ] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
COLOR="93m"
|
2017-07-15 19:52:23 +02:00
|
|
|
elif [ "$2" == "danger" ] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
COLOR="91m"
|
2017-07-15 21:46:00 +02:00
|
|
|
else #default color
|
2017-07-15 23:15:07 +02:00
|
|
|
COLOR="0m"
|
2017-07-15 19:52:23 +02:00
|
|
|
fi
|
|
|
|
|
2017-07-15 23:15:07 +02:00
|
|
|
STARTCOLOR="\e[$COLOR"
|
|
|
|
ENDCOLOR="\e[0m"
|
2017-07-15 20:24:01 +02:00
|
|
|
|
2017-07-15 23:15:07 +02:00
|
|
|
printf "$STARTCOLOR%b$ENDCOLOR" "$1"
|
2017-07-15 19:52:23 +02:00
|
|
|
}
|
|
|
|
|
2017-07-15 21:46:00 +02:00
|
|
|
display_options () {
|
|
|
|
printf "Available options:\n";
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style " install" "info"; printf "\t\t Installs docker-sync gem on the host machine.\n"
|
|
|
|
print_style " up [services]" "success"; printf "\t Starts docker-sync and runs docker compose.\n"
|
|
|
|
print_style " down" "success"; printf "\t\t\t Stops containers and docker-sync.\n"
|
|
|
|
print_style " bash" "success"; printf "\t\t\t Opens bash on the workspace.\n"
|
2017-07-16 01:28:02 +02:00
|
|
|
print_style " sync" "info"; printf "\t\t\t Manually triggers the synchronization of files.\n"
|
2017-07-16 00:32:05 +02:00
|
|
|
print_style " clean" "danger"; printf "\t\t Removes all files from docker-sync.\n"
|
2017-07-15 21:46:00 +02:00
|
|
|
}
|
2017-07-15 19:52:23 +02:00
|
|
|
|
2017-07-15 21:46:00 +02:00
|
|
|
if [[ $# -eq 0 ]] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Missing arguments.\n" "danger"
|
|
|
|
display_options
|
2017-07-15 15:40:25 +02:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2017-07-15 22:58:17 +02:00
|
|
|
if [ "$1" == "up" ] ; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Initializing Docker Sync\n" "info"
|
2017-07-16 00:47:02 +02:00
|
|
|
print_style "May take a long time (15min+) on the first run\n" "info"
|
2017-07-15 22:58:17 +02:00
|
|
|
docker-sync start;
|
|
|
|
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Initializing Docker Compose\n" "info"
|
|
|
|
shift # removing first argument
|
2017-11-21 22:48:22 +01:00
|
|
|
docker-compose up -d ${@}
|
2017-07-15 18:00:44 +02:00
|
|
|
|
2017-07-15 22:58:17 +02:00
|
|
|
elif [ "$1" == "down" ]; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Stopping Docker Compose\n" "info"
|
2017-11-28 15:33:27 +01:00
|
|
|
docker-compose stop
|
2017-07-15 22:03:33 +02:00
|
|
|
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Stopping Docker Sync\n" "info"
|
|
|
|
docker-sync stop
|
2017-07-15 18:00:44 +02:00
|
|
|
|
2017-07-15 22:58:17 +02:00
|
|
|
elif [ "$1" == "bash" ]; then
|
2017-07-15 23:15:07 +02:00
|
|
|
docker-compose exec workspace bash
|
2017-07-15 22:36:25 +02:00
|
|
|
|
2017-07-15 22:58:17 +02:00
|
|
|
elif [ "$1" == "install" ]; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Installing docker-sync\n" "info"
|
|
|
|
gem install docker-sync
|
2017-07-15 18:00:44 +02:00
|
|
|
|
2017-07-16 00:32:05 +02:00
|
|
|
elif [ "$1" == "sync" ]; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Manually triggering sync between host and docker-sync container.\n" "info"
|
2017-07-15 22:58:17 +02:00
|
|
|
docker-sync sync;
|
2017-07-15 22:03:33 +02:00
|
|
|
|
2017-07-15 22:58:17 +02:00
|
|
|
elif [ "$1" == "clean" ]; then
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Removing and cleaning up files from the docker-sync container.\n" "warning"
|
|
|
|
docker-sync clean
|
2017-07-15 22:58:17 +02:00
|
|
|
else
|
2017-07-15 23:15:07 +02:00
|
|
|
print_style "Invalid arguments.\n" "danger"
|
|
|
|
display_options
|
2017-07-15 22:58:17 +02:00
|
|
|
exit 1
|
2017-11-28 15:33:27 +01:00
|
|
|
fi
|