Last active
April 29, 2024 11:20
-
-
Save maglnet/e08bb84e8f04ee9cd8be to your computer and use it in GitHub Desktop.
Sample Docker Startup Script
This file contains 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
#!/bin/bash | |
WEB_PORT=8080 | |
WEB_CONTAINER_NAME="zf2-web" | |
MYSQL_CONTAINER_NAME="zf2-mysql" | |
MYSQL_PASSWORD="mypassword" | |
MYSQL_LOCAL_PORT=13306 | |
ZF2_APP_DIR=$(pwd) | |
MYSQL_DATA_DIR="$(pwd)/docker/mysql" | |
################# | |
# BEGIN FUNCTIONS | |
################# | |
function start { | |
echo "starting docker environment"; | |
#MySQL Server | |
docker start $MYSQL_CONTAINER_NAME > /dev/null 2>&1 | |
if [ $? -ne 0 ] | |
then | |
docker run \ | |
-p $MYSQL_LOCAL_PORT:3306 \ | |
--name $MYSQL_CONTAINER_NAME \ | |
-e MYSQL_ROOT_PASSWORD=$MYSQL_PASSWORD \ | |
-v $MYSQL_DATA_DIR:/var/lib/mysql \ | |
-d \ | |
mysql | |
fi | |
#Apache Web Server | |
docker start $WEB_CONTAINER_NAME > /dev/null 2>&1 | |
if [ $? -ne 0 ] | |
then | |
docker run \ | |
--name $WEB_CONTAINER_NAME \ | |
--link $MYSQL_CONTAINER_NAME:mysql \ | |
-p $WEB_PORT:80 \ | |
-v $ZF2_APP_DIR:/zf2-app \ | |
-d \ | |
maglnet/docker-zf2 | |
fi | |
} | |
function stop { | |
echo "stopping docker environment"; | |
docker stop $WEB_CONTAINER_NAME | |
docker stop $MYSQL_CONTAINER_NAME | |
} | |
function remove { | |
docker rm $WEB_CONTAINER_NAME | |
docker rm $MYSQL_CONTAINER_NAME | |
} | |
function restart { | |
echo "restarting docker environment..."; | |
stop; | |
start; | |
} | |
case "$1" in | |
"start") | |
start | |
;; | |
"stop") | |
stop | |
;; | |
"rm") | |
remove | |
;; | |
"restart") | |
restart | |
;; | |
"upgrade") | |
docker pull maglnet/docker-zf2 | |
docker pull mysql | |
stop | |
remove | |
start | |
;; | |
*) | |
echo "usage: start | stop | restart | rm | upgrade" | |
exit 1 | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment