Skip to content

Instantly share code, notes, and snippets.

@ksaylor11
Last active September 17, 2018 14:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ksaylor11/fd37769315607177e4ecd4805c69a319 to your computer and use it in GitHub Desktop.
Save ksaylor11/fd37769315607177e4ecd4805c69a319 to your computer and use it in GitHub Desktop.
Stateless WordPress site created and served using wp-cli

WordPress CLI Docker

need to run:

docker-compose up -d db

then:

docker-compose up -d web

version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: SecretPassword
MYSQL_DATABASE: project_db
MYSQL_USER: user_name
MYSQL_PASSWORD: SecretPassword
ports:
- "3306:3306"
networks:
- webnet
web:
build: .
ports:
- "80:80"
links:
- db
networks:
- webnet
networks:
webnet:
volumes:
db_data:
FROM php:7.0
RUN apt-get update -y && apt-get install -y openssl zip unzip mysql-client
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
RUN chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp
RUN docker-php-ext-install mbstring mysqli
WORKDIR /var/www
RUN wp core download --allow-root
RUN wp config create --dbname=project_db --dbuser=user_name --dbpass=SecretPassword --dbhost=host.docker.internal --allow-root
RUN wp core multisite-install --url=sites.example.com --title=Example --admin_user=starlord --admin_password=password --admin_email=starlord@example.com --skip-email --subdomains --allow-root
CMD wp server --allow-root --host=0.0.0.0 --port=80
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment