Last active
October 5, 2018 01:25
-
-
Save jimfrenette/3ab5b9b1d9e906eff9bfaee204a85585 to your computer and use it in GitHub Desktop.
local dev docker-compose file for wordpress site
This file contains hidden or 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
version: "2" | |
services: | |
mariadb: | |
# image: wodby/mariadb:10.2-3.0.2 | |
image: wodby/mariadb:10.1-3.0.2 | |
environment: | |
MYSQL_ROOT_PASSWORD: password | |
MYSQL_DATABASE: wordpress | |
MYSQL_USER: wordpress | |
MYSQL_PASSWORD: wordpress | |
volumes: | |
- mysql:/var/lib/mysql | |
# - ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here. | |
# - /path/to/mariadb/data/on/host:/var/lib/mysql # I want to manage volumes manually. | |
# postgres: | |
# image: wodby/postgres:10.1-1.2.0 | |
## image: wodby/postgres:9.6-1.2.0 | |
# environment: | |
# POSTGRES_PASSWORD: password | |
# POSTGRES_DB: wordpress | |
# POSTGRES_USER: wordpress | |
# volumes: | |
# - ./postgres-init:/docker-entrypoint-initdb.d # Place init file(s) here. | |
# - /path/to/postgres/data/on/host:/var/lib/postgresql/data # I want to manage volumes manually. | |
php: | |
# 1. Images with vanilla WordPress – wodby/wordpress:[WP_VERSION]-[PHP_VERSION]-[STABILITY_TAG]. | |
# image: wodby/wordpress:4-7.2-3.3.1 | |
# image: wodby/wordpress:4-7.1-3.3.1 | |
# image: wodby/wordpress:4-7.0-3.3.1 | |
# image: wodby/wordpress:4-5.6-3.3.1 | |
# 2. Images without WordPress – wodby/wordpress-php:[PHP_VERSION]-[STABILITY_TAG]. | |
# image: wodby/wordpress-php:7.2-3.3.1 | |
image: wodby/wordpress-php:7.1-3.3.1 | |
# image: wodby/wordpress-php:7.0-3.3.1 | |
# image: wodby/wordpress-php:5.6-3.3.1 | |
# 3. Images without WordPress – wodby/wordpress-php:[PHP_VERSION]-[STABILITY_TAG].Version for development (--enable-debug) | |
# image: wodby/wordpress-php:7.2-dev-3.3.1 | |
# image: wodby/wordpress-php:7.1-dev-3.3.1 | |
# image: wodby/wordpress-php:7.0-dev-3.3.1 | |
# image: wodby/wordpress-php:5.6-dev-3.3.1 | |
environment: | |
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025 | |
PHP_FPM_CLEAR_ENV: "no" | |
# PHP_XDEBUG: 1 | |
# PHP_XDEBUG_DEFAULT_ENABLE: 1 | |
# PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 | |
# PHP_XDEBUG_REMOTE_HOST: "10.254.254.254" | |
# PHP_XDEBUG_PROFILER_OUTPUT_DIR: /mnt/files/xdebug/profiler | |
# PHP_XDEBUG_TRACE_OUTPUT_DIR: /mnt/files/xdebug/traces | |
volumes: | |
- ./:/var/www/html | |
## Options for macOS users (http://docs.docker4wordpress.org/en/latest/macos) | |
# - codebase:/var/www/html:cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
## For Xdebug profiler files | |
# - files:/mnt/files | |
nginx: | |
image: wodby/wordpress-nginx:4-1.13-3.0.2 | |
# image: wodby/wordpress-nginx:4-1.12-3.0.2 | |
environment: | |
NGINX_STATIC_CONTENT_OPEN_FILE_CACHE: "off" | |
NGINX_ERROR_LOG_LEVEL: debug | |
NGINX_BACKEND_HOST: php | |
volumes: | |
- ./:/var/www/html | |
# Options for macOS users (http://docs.docker4wordpress.org/en/latest/macos) | |
# - codebase:/var/www/html:cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
depends_on: | |
- php | |
labels: | |
- 'traefik.backend=nginx' | |
- 'traefik.port=80' | |
- 'traefik.frontend.rule=Host:dev.docker.jimfrenette.com' | |
# apache: | |
# image: wodby/php-apache:2.4-2.0.2 | |
# depends_on: | |
# - php | |
# environment: | |
# APACHE_LOG_LEVEL: debug | |
# APACHE_BACKEND_HOST: php | |
# APACHE_SERVER_ROOT: /var/www/html | |
# volumes: | |
# - codebase:/var/www/html | |
## Options for macOS users (http://docs.docker4wordpress.org/en/latest/macos) | |
## - codebase:/var/www/html:cached # User-guided caching | |
## - docker-sync:/var/www/html # Docker-sync | |
# labels: | |
# - 'traefik.backend=apache' | |
# - 'traefik.port=80' | |
# - 'traefik.frontend.rule=Host:wp.docker.localhost' | |
# varnish: | |
# image: wodby/wordpress-varnish:4.1-2.3.1 | |
# depends_on: | |
# - nginx | |
# environment: | |
# VARNISH_SECRET: secret | |
# VARNISH_BACKEND_HOST: nginx | |
# VARNISH_BACKEND_PORT: 80 | |
# labels: | |
# - 'traefik.backend=varnish' | |
# - 'traefik.port=6081' | |
# - 'traefik.frontend.rule=Host:varnish.wp.docker.localhost' | |
# redis: | |
# image: wodby/redis:4.0-2.1.4 | |
## image: wodby/redis:3.2-2.1.4 | |
pma: | |
image: phpmyadmin/phpmyadmin | |
environment: | |
PMA_HOST: mariadb | |
PMA_USER: wordpress | |
PMA_PASSWORD: wordpress | |
PHP_UPLOAD_MAX_FILESIZE: 1G | |
PHP_MAX_INPUT_VARS: 1G | |
labels: | |
- 'traefik.backend=pma' | |
- 'traefik.port=80' | |
- 'traefik.frontend.rule=Host:pma.wp.docker.localhost' | |
# athenapdf: | |
# image: arachnysdocker/athenapdf-service:2.10.0 | |
# environment: | |
# WEAVER_AUTH_KEY: weaver-auth-key | |
# WEAVER_ATHENA_CMD: "athenapdf -S" | |
# WEAVER_MAX_WORKERS: 10 | |
# WEAVER_MAX_CONVERSION_QUEUE: 50 | |
# WEAVER_WORKER_TIMEOUT: 90 | |
# WEAVER_CONVERSION_FALLBACK: false | |
# blackfire: | |
# image: blackfire/blackfire | |
# environment: | |
# BLACKFIRE_SERVER_ID: XXXXX | |
# BLACKFIRE_SERVER_TOKEN: YYYYY | |
# webgrind: | |
# image: wodby/webgrind:1.5-1.0.0 | |
# environment: | |
# WEBGRIND_PROFILER_DIR: /mnt/files/xdebug/profiler | |
# labels: | |
# - 'traefik.backend=webgrind' | |
# - 'traefik.port=8080' | |
# - 'traefik.frontend.rule=Host:webgrind.wp.docker.localhost' | |
# volumes: | |
# - files:/mnt/files | |
mailhog: | |
image: mailhog/mailhog | |
labels: | |
- 'traefik.backend=mailhog' | |
- 'traefik.port=8025' | |
- 'traefik.frontend.rule=Host:mailhog.wp.docker.localhost' | |
# portainer: | |
# image: portainer/portainer | |
# command: --no-auth -H unix:///var/run/docker.sock | |
# volumes: | |
# - /var/run/docker.sock:/var/run/docker.sock | |
# labels: | |
# - 'traefik.backend=portainer' | |
# - 'traefik.port=9000' | |
# - 'traefik.frontend.rule=Host:portainer.wp.docker.localhost' | |
traefik: | |
image: traefik | |
command: -c /dev/null --web --docker --logLevel=INFO | |
ports: | |
- '8000:80' | |
# - '8080:8080' # Dashboard | |
volumes: | |
- /var/run/docker.sock:/var/run/docker.sock | |
volumes: | |
mysql: | |
## Docker-sync for macOS users | |
# docker-sync: | |
# external: true | |
## For Xdebug profiler | |
# files: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
For this setup, if importing the prod data, search and replace the host name and append the port.
e.g., in mysql dump:
Find: jimfrenette.com
Replace: dev.docker.jimfrenette.com:8000
etc/hosts
127.0.0.1 dev.docker.jimfrenette.com