Skip to content

Instantly share code, notes, and snippets.

@iamsortiz
Last active May 31, 2020 01:30
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save iamsortiz/8c6e09d8bf452a6a7eecd8b8d26a195c to your computer and use it in GitHub Desktop.
Save iamsortiz/8c6e09d8bf452a6a7eecd8b8d26a195c to your computer and use it in GitHub Desktop.
Docker php apache modrewrite bash utils
# Convenience bash utils to handle docker: php + apache + modrewrite
# * related issue: https://github.com/docker-library/php/issues/179#issuecomment-234594522
#
# Usage:
# * Download the file
# * In your "bash file"
# * On debian based systems use: ~/.bashrc
# * On Mac use: ~/.bash_profile
# * Include the line: source PATH_TO_THE_DOWNLOADED_FILE
# * Or just copy and paste the contents of this file
PHP_VERSION='5.6'
CONTAINER_NAME='php_apache'
function php_apache-run() {
docker run -d -v $PWD:/var/www/html --name $CONTAINER_NAME -p 8000:80 php:$PHP_VERSION-apache /bin/bash -c 'a2enmod rewrite; apache2-foreground'
}
alias php_apache-start="docker start $CONTAINER_NAME"
alias php_apache-stop="docker stop $CONTAINER_NAME"
alias php_apache-kill="docker rm -f $CONTAINER_NAME"
alias php_apache-logs="docker logs -t $CONTAINER_NAME"
alias php_apache-logs_live="docker logs -t -f $CONTAINER_NAME"
function php_apache-run_safe() {
echo -e "$(echo $COLOR_INFO)php_apache-run_safe()$COLOR_DEFAULT"
CONTAINER_ID=$(docker ps -a | grep -E 'php:.*php_apache' | awk '{print $1}')
if [ -z $CONTAINER_ID ];then
echo -e "$COLOR_INFO* Running $CONTAINER_NAME.$COLOR_DEFAULT"
php_apache-run
else
echo -e "$COLOR_INFO* Container $CONTAINER_NAME already created$COLOR_DEFAULT"
# Bash prompt from: http://stackoverflow.com/questions/226703/how-do-i-prompt-for-input-in-a-linux-shell-script
read -p $'\e[93mDo you want to \e[91mkill\e[93m the container and start a new one?\e[39m ' yn
case $yn in
[Yy]* ) php_apache-kill; php_apache-run;;
[Nn]* ) echo "Ok then :D";;
* ) echo "Please answer yes or no.";;
esac
fi
}
function php_apache-status() {
echo -e "$(echo $COLOR_INFO)php_apache-status()$COLOR_DEFAULT"
CONTAINER_ID=$(docker ps -a | grep -E 'php:.*php_apache' | awk '{print $1}')
if [ -z $CONTAINER_ID ];then
echo -e "$(echo $COLOR_DANGER)* Container $CONTAINER_NAME not created.$COLOR_DEFAULT"
echo -e "$(echo $COLOR_INFO) * To run the container: $ php_apache-run $COLOR_DEFAULT"
else
CONTAINER_ID=$(docker ps | grep -E 'php:.*php_apache' | awk '{print $1}')
if [ -z $CONTAINER_ID ];then
echo -e "$(echo $COLOR_WARNING)* Container $CONTAINER_NAME stoped.$COLOR_DEFAULT"
echo -e "$(echo $COLOR_INFO) * To start the container: $ php_apache-start $COLOR_DEFAULT"
else
echo -e "$(echo $COLOR_BG_GREEN)* Container $CONTAINER_NAME started.$COLOR_BG_DEFAULT"
echo -e "$(echo $COLOR_INFO) * To stop the container: $ php_apache-stop $COLOR_DEFAULT"
echo -e "$(echo $COLOR_INFO) * To kill the container: $ php_apache-kill $COLOR_DEFAULT"
fi
fi
}
COLOR_DEFAULT='\e[39m'
COLOR_INFO='\e[34m'
COLOR_WARNING='\e[93m'
COLOR_DANGER='\e[91m'
COLOR_BG_DEFAULT='\e[49m'
COLOR_BG_RED='\e[41m'
COLOR_BG_GREEN='\e[42m'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment