Skip to content

Instantly share code, notes, and snippets.

@tpett
Last active August 29, 2015 14:05
Show Gist options
  • Save tpett/f2b73046863aa27a0798 to your computer and use it in GitHub Desktop.
Save tpett/f2b73046863aa27a0798 to your computer and use it in GitHub Desktop.
Docker Wordpress Setup
#!/bin/bash
if [ -z "$1" ]; then
echo "USAGE: init-wordpress APP_NAME"
echo " APP_NAME is the base name for the new Wordpress Docker containers"
exit 1
fi
APP_NAME=$1
MYSQL_CONTAINER=mysql
WORDPRESS_CONTAINER=wordpress
if [ -z "$MYSQL_ROOT_PASSWORD" ]; then
MYSQL_ROOT_PASSWORD=`< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c45`
fi
echo "Setting up data-only containers..."
docker run --name $APP_NAME-wordpress-mysql-data --entrypoint="echo" $MYSQL_CONTAINER "Data-only container for $APP_NAME"
docker run --name $APP_NAME-wordpress-data --entrypoint="echo" $WORDPRESS_CONTAINER "Data-only container for $APP_NAME"
echo "Starting MySQL container..."
docker run \
--name $APP_NAME-wordpress-mysql \
--volumes-from $APP_NAME-wordpress-mysql-data \
-e MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD \
-d $MYSQL_CONTAINER \
mysqld \
--datadir=/var/lib/mysql \
--user=mysql \
--performance-schema=off # to avoid massive memory usage (50MB vs 500MB; silly MySQL)
echo "Starting Wordpress container..."
docker run \
--volumes-from $APP_NAME-wordpress-data \
--name $APP_NAME-wordpress \
--link $APP_NAME-wordpress-mysql:mysql \
-P -d $WORDPRESS_CONTAINER
[Unit]
Description=Wordpress MySQL (%i)
Author=Watermark Community Church
After=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a %i-wordpress-mysql
ExecStop=/usr/bin/docker stop %i-wordpress-mysql
[Install]
WantedBy=multi-user.target
[Unit]
Description=Wordpress (%i)
Author=Watermark Community Church
After=docker.service
After=%i-wordpress-mysql.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a %i-wordpress
ExecStop=/usr/bin/docker stop %i-wordpress
[Install]
WantedBy=multi-user.target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment