Skip to content

Instantly share code, notes, and snippets.

@ryelle
Last active October 12, 2020 15:20
Show Gist options
  • Save ryelle/22536b2945923d62aa39d3ada7c41128 to your computer and use it in GitHub Desktop.
Save ryelle/22536b2945923d62aa39d3ada7c41128 to your computer and use it in GitHub Desktop.
Simple WP site for theme & plugin dev, with wp-cli
version: '3.2'
services:
db:
image: mysql:latest
volumes:
- db_data:/var/lib/mysql
container_name: db
environment:
MYSQL_ROOT_PASSWORD: rootroot
MYSQL_DATABASE: wordpress
MYSQL_USER: wp
MYSQL_PASSWORD: wp
command: '--default-authentication-plugin=mysql_native_password'
networks:
- themes-network
wordpress:
depends_on:
- db
image: wordpress:fpm-alpine
container_name: wordpress
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wp
WORDPRESS_DB_PASSWORD: wp
WORDPRESS_DEBUG: 1
working_dir: /var/www/html
volumes:
- wordpress:/var/www/html/
- ./content:/var/www/html/wp-content
- "./.docker/wp-cli.yml:/var/www/html/wp-cli.yml"
- "./.docker/php-fpm.conf:/usr/local/etc/php-fpm.d/zz-www.conf"
networks:
- themes-network
wp-cli:
depends_on:
- db
- wordpress
image: wordpress:cli
container_name: wp-cli
working_dir: /var/www/html
volumes:
- wordpress:/var/www/html/
- ./content:/var/www/html/wp-content
- .docker/wp-cli.yml:/var/www/html/wp-cli.yml
networks:
- themes-network
webserver:
depends_on:
- wordpress
image: nginx:alpine
container_name: webserver
ports:
- "80:80"
working_dir: /var/www/html
volumes:
- wordpress:/var/www/html/
- ./content:/var/www/html/wp-content
- ./.docker/nginx:/etc/nginx/conf.d
networks:
- themes-network
volumes:
db_data:
wordpress:
networks:
themes-network:
driver: bridge
server {
listen 80;
listen [::]:80;
server_name wordpress.local www.wordpress.local;
index index.php index.html index.htm;
root /var/www/html;
client_max_body_size 100M;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off; access_log off;
}
location = /robots.txt {
log_not_found off; access_log off; allow all;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
}
[global]
[www]
php_flag[display_errors] = on
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[post_max_size] = 100M
php_admin_value[upload_max_filesize] = 100M
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment