Created
October 20, 2018 20:48
-
-
Save timogoosen/a209b0d6998cae7c3c105c36965c1f27 to your computer and use it in GitHub Desktop.
docker-compose.yml
This file contains 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: "3" | |
services: | |
mariadb: | |
image: wodby/mariadb:$MARIADB_TAG | |
container_name: "${PROJECT_NAME}_mariadb" | |
stop_grace_period: 30s | |
environment: | |
MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD | |
MYSQL_DATABASE: $DB_NAME | |
MYSQL_USER: $DB_USER | |
MYSQL_PASSWORD: $DB_PASSWORD | |
volumes: | |
- $HOME/Desktop/mariadb/:/var/lib/mysql # I want to manage volumes manually. | |
php: | |
image: wodby/wordpress-php:$PHP_TAG | |
container_name: "${PROJECT_NAME}_php" | |
environment: | |
PHP_SENDMAIL_PATH: /usr/sbin/sendmail -t -i -S mailhog:1025 | |
DB_HOST: $DB_HOST | |
DB_USER: $DB_USER | |
DB_PASSWORD: $DB_PASSWORD | |
DB_NAME: $DB_NAME | |
## Read instructions at https://wodby.com/stacks/wordpress/docs/local/xdebug/ | |
# PHP_XDEBUG: 1 | |
# PHP_XDEBUG_DEFAULT_ENABLE: 1 | |
# PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 | |
# PHP_IDE_CONFIG: serverName=my-ide | |
# PHP_XDEBUG_REMOTE_HOST: 172.17.0.1 # Linux | |
# PHP_XDEBUG_REMOTE_HOST: 10.254.254.254 # macOS | |
# PHP_XDEBUG_REMOTE_HOST: 10.0.75.1 # Windows | |
volumes: | |
- ./:/var/www/html | |
## For macOS users (https://wodby.com/stacks/wordpress/docs/local/docker-for-mac/) | |
# - ./:/var/www/html:cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
## For Xdebug profiler files | |
# - files:/mnt/files | |
nginx: | |
image: wodby/nginx:$NGINX_TAG | |
container_name: "${PROJECT_NAME}_nginx" | |
depends_on: | |
- php | |
environment: | |
# NGINX_PAGESPEED: "on" | |
NGINX_STATIC_OPEN_FILE_CACHE: "off" | |
NGINX_ERROR_LOG_LEVEL: debug | |
NGINX_BACKEND_HOST: php | |
NGINX_VHOST_PRESET: wordpress | |
volumes: | |
- ./:/var/www/html | |
# Options for macOS users (https://wodby.com/stacks/wordpress/docs/local/docker-for-mac/) | |
# - ./:/var/www/html:cached # User-guided caching | |
# - docker-sync:/var/www/html # Docker-sync | |
labels: | |
- 'traefik.backend=nginx' | |
- 'traefik.port=80' | |
- 'traefik.frontend.rule=Host:${PROJECT_BASE_URL}' | |
mailhog: | |
image: mailhog/mailhog | |
container_name: "${PROJECT_NAME}_mailhog" | |
labels: | |
- 'traefik.backend=mailhog' | |
- 'traefik.port=8025' | |
- 'traefik.frontend.rule=Host:mailhog.${PROJECT_BASE_URL}' | |
# postgres: | |
# image: wodby/postgres:$POSTGRES_TAG | |
# container_name: "${PROJECT_NAME}_postgres" | |
# stop_grace_period: 30s | |
# environment: | |
# POSTGRES_PASSWORD: $DB_PASSWORD | |
# POSTGRES_DB: $DB_NAME | |
# POSTGRES_USER: $DB_USER | |
# 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. | |
# apache: | |
# image: wodby/apache:$APACHE_TAG | |
# container_name: "${PROJECT_NAME}_apache" | |
# depends_on: | |
# - php | |
# environment: | |
# APACHE_LOG_LEVEL: debug | |
# APACHE_BACKEND_HOST: php | |
# APACHE_VHOST_PRESET: php | |
# volumes: | |
# - ./:/var/www/html | |
## For macOS users (https://wodby.com/stacks/wordpress/docs/local/docker-for-mac/) | |
## - ./:/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:${PROJECT_BASE_URL}' | |
# varnish: | |
# image: wodby/varnish:$VARNISH_TAG | |
# container_name: "${PROJECT_NAME}_varnish" | |
# depends_on: | |
# - nginx | |
# environment: | |
# VARNISH_SECRET: secret | |
# VARNISH_BACKEND_HOST: nginx | |
# VARNISH_BACKEND_PORT: 80 | |
# VARNISH_PURGE_KEY: key | |
# VARNISH_CONFIG_PRESET: wordpress | |
# VARNISH_PURGE_EXTERNAL_REQUEST_HEADER: X-Real-IP | |
# labels: | |
# - 'traefik.backend=varnish' | |
# - 'traefik.port=6081' | |
# - 'traefik.frontend.rule=Host:varnish.${PROJECT_BASE_URL}' | |
# redis: | |
# container_name: "${PROJECT_NAME}_redis" | |
# image: wodby/redis:$REDIS_TAG | |
# adminer: | |
# container_name: "${PROJECT_NAME}_adminer" | |
# image: wodby/adminer:$ADMINER_TAG | |
# environment: | |
## For PostgreSQL: | |
## ADMINER_DEFAULT_DB_DRIVER: pgsql | |
# ADMINER_DEFAULT_DB_HOST: $DB_HOST | |
# ADMINER_DEFAULT_DB_NAME: $DB_NAME | |
# labels: | |
# - 'traefik.backend=adminer' | |
# - 'traefik.port=9000' | |
# - 'traefik.frontend.rule=Host:adminer.${PROJECT_BASE_URL}' | |
# webgrind: | |
# image: wodby/webgrind:$WEBGRIND_TAG | |
# container_name: "${PROJECT_NAME}_webgrind" | |
# environment: | |
# WEBGRIND_PROFILER_DIR: /mnt/files/xdebug/profiler | |
# labels: | |
# - 'traefik.backend=webgrind' | |
# - 'traefik.port=8080' | |
# - 'traefik.frontend.rule=Host:webgrind.${PROJECT_BASE_URL}' | |
# volumes: | |
# - files:/mnt/files | |
# pma: | |
# image: phpmyadmin/phpmyadmin | |
# container_name: "${PROJECT_NAME}_pma" | |
# environment: | |
# PMA_HOST: $DB_HOST | |
# PMA_USER: $DB_USER | |
# PMA_PASSWORD: $DB_PASSWORD | |
# PHP_UPLOAD_MAX_FILESIZE: 1G | |
# PHP_MAX_INPUT_VARS: 1G | |
# labels: | |
# - 'traefik.backend=pma' | |
# - 'traefik.port=80' | |
# - 'traefik.frontend.rule=Host:pma.${PROJECT_BASE_URL}' | |
# athenapdf: | |
# image: arachnysdocker/athenapdf-service:$ATHENAPDF_TAG | |
# container_name: "${PROJECT_NAME}_athenapdf" | |
# 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 | |
# container_name: "${PROJECT_NAME}_blackfire" | |
# environment: | |
# BLACKFIRE_SERVER_ID: XXXXX | |
# BLACKFIRE_SERVER_TOKEN: YYYYY | |
# solr: | |
# image: wodby/solr:$SOLR_TAG | |
# container_name: "${PROJECT_NAME}_solr" | |
# environment: | |
# SOLR_HEAP: 1024m | |
# labels: | |
# - 'traefik.backend=solr' | |
# - 'traefik.port=8983' | |
# - 'traefik.frontend.rule=Host:solr.${PROJECT_BASE_URL}' | |
# elasticsearch: | |
# image: wodby/elasticsearch:$ELASTICSEARCH_TAG | |
# environment: | |
# ES_JAVA_OPTS: "-Xms500m -Xmx500m" | |
# ulimits: | |
# memlock: | |
# soft: -1 | |
# hard: -1 | |
# kibana: | |
# image: wodby/kibana:$KIBANA_TAG | |
# depends_on: | |
# - elasticsearch | |
# labels: | |
# - 'traefik.backend=kibana' | |
# - 'traefik.port=5601' | |
# - 'traefik.frontend.rule=Host:kibana.php.docker.localhost' | |
# node: | |
# image: wodby/node:$NODE_TAG | |
# container_name: "${PROJECT_NAME}_node" | |
# working_dir: /app | |
# labels: | |
# - 'traefik.backend=node' | |
# - 'traefik.port=3000' | |
# - 'traefik.frontend.rule=Host:front.${PROJECT_BASE_URL}' | |
# expose: | |
# - "3000" | |
# volumes: | |
# - ./path/to/your/single-page-app:/app | |
# command: sh -c 'npm install && npm run start' | |
# memcached: | |
# container_name: "${PROJECT_NAME}_memcached" | |
# image: wodby/memcached:$MEMCACHED_TAG | |
# opensmtpd: | |
# container_name: "${PROJECT_NAME}_opensmtpd" | |
# image: wodby/opensmtpd:$OPENSMTPD_TAG | |
# rsyslog: | |
# container_name: "${PROJECT_NAME}_rsyslog" | |
# image: wodby/rsyslog:$RSYSLOG_TAG | |
portainer: | |
image: portainer/portainer | |
container_name: "${PROJECT_NAME}_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.${PROJECT_BASE_URL}' | |
traefik: | |
image: traefik | |
container_name: "${PROJECT_NAME}_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: | |
## 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