Created
April 9, 2020 15:07
-
-
Save g3r4/50d981c6618651b84e5c1a5b052fff68 to your computer and use it in GitHub Desktop.
Xdebug composer config
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
# If using linux remember to set or uncomment | |
# PHP_XDEBUG_REMOTE_HOST=172.17.0.1 | |
# on your .env file | |
version: "2" | |
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: | |
- ./db:/docker-entrypoint-initdb.d # Place init .sql file(s) here. | |
# - /path/to/mariadb/data/on/host:/var/lib/mysql # Use bind mount | |
networks: | |
- wioa_state_plan | |
php: | |
image: wodby/drupal-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 | |
DB_DRIVER: $DB_DRIVER | |
TRUSTED_HOST_PATTERNS: "${PROJECT_BASE_URL}" | |
HASH_SALT: "${HASH_SALT}" | |
## Enable via make debug, see docker-compose.debug.yml | |
PHP_XDEBUG: 1 | |
PHP_XDEBUG_DEFAULT_ENABLE: 1 | |
PHP_XDEBUG_REMOTE_CONNECT_BACK: 0 | |
PHP_XDEBUG_IDEKEY: "VSCODE" | |
PHP_IDE_CONFIG: serverName=my-ide | |
PHP_XDEBUG_REMOTE_HOST: "${PHP_XDEBUG_REMOTE_HOST}" | |
## https://wodby.com/docs/stacks/php/containers/#xdebug-profiler | |
# This turns it on automatically without using ?XDEBUG_PROFILE=1 in the GET (drush scripts). | |
#PHP_XDEBUG_PROFILER_ENABLE: 1 | |
# Enables only when using ?XDEBUG_PROFILE=1 in the GET. | |
PHP_XDEBUG_REMOTE_AUTOSTART: 1 | |
PHP_XDEBUG_REMOTE_ENABLE: 1 | |
PHP_XDEBUG_PROFILER_ENABLE_TRIGGER: 1 | |
PHP_XDEBUG_PROFILER_ENABLE_TRIGGER_VALUE: 1 | |
PHP_XDEBUG_PROFILER_OUTPUT_NAME: cachegrind.out.%t-%R | |
# Remove xdebug from the list of disabled extensions. | |
PHP_EXTENSIONS_DISABLE: '' | |
# Enable xdebug traces. | |
PHP_XDEBUG_TRACE_ENABLE_TRIGGER: 1 | |
PHP_XDEBUG_TRACE_ENABLE_TRIGGER_VALUE: 1 | |
# This caused HUGE files. | |
#PHP_XDEBUG_TRACE_FORMAT: 2 | |
PHP_XDEBUG_TRACE_OUTPUT_NAME: trace.%t-%R | |
# If profiling causes timeouts. | |
#PHP_MAX_EXECUTION_TIME: 300 | |
volumes: | |
- ./:/var/www/html:cached # User-guided caching | |
## For Xdebug profiler files | |
- files:/mnt/files | |
networks: | |
- wioa_state_plan | |
nginx: | |
image: wodby/nginx:$NGINX_TAG | |
container_name: "${PROJECT_NAME}_nginx" | |
depends_on: | |
- php | |
- clamav | |
environment: | |
# NGINX_PAGESPEED: "on" | |
NGINX_STATIC_OPEN_FILE_CACHE: "off" | |
NGINX_ERROR_LOG_LEVEL: debug | |
NGINX_BACKEND_HOST: php | |
NGINX_SERVER_ROOT: /var/www/html/docroot | |
NGINX_VHOST_PRESET: $NGINX_VHOST_PRESET | |
# NGINX_DRUPAL_FILE_PROXY_URL: http://example.com | |
volumes: | |
# For macOS users (https://wodby.com/stacks/drupal/docs/local/docker-for-mac/) | |
- ./:/var/www/html:cached # User-guided caching | |
labels: | |
- 'traefik.backend=nginx' | |
- 'traefik.port=80' | |
- 'traefik.frontend.rule=Host:${PROJECT_BASE_URL}' | |
networks: | |
- wioa_state_plan | |
mailhog: | |
image: mailhog/mailhog | |
container_name: "${PROJECT_NAME}_mailhog" | |
labels: | |
- 'traefik.backend=mailhog' | |
- 'traefik.port=8025' | |
- 'traefik.frontend.rule=Host:mailhog.${PROJECT_BASE_URL}' | |
networks: | |
- wioa_state_plan | |
clamav: | |
image: mkodockx/docker-clamav | |
container_name: "${PROJECT_NAME}_clamav" | |
networks: | |
- wioa_state_plan | |
# 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 # Use bind mount | |
# 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 | |
# APACHE_DOCUMENT_ROOT: /var/www/html/web | |
# volumes: | |
# - ./:/var/www/html | |
## For macOS users (https://wodby.com/stacks/drupal/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_CONFIG_PRESET: drupal | |
# 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: | |
# ADMINER_SALT: adminer-salt | |
# labels: | |
# - 'traefik.backend=adminer' | |
# - 'traefik.port=9000' | |
# - 'traefik.frontend.rule=Host:adminer.${PROJECT_BASE_URL}' | |
# 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}' | |
# solr: | |
# image: wodby/solr:$SOLR_TAG | |
# container_name: "${PROJECT_NAME}_solr" | |
# environment: | |
# SOLR_DEFAULT_CONFIG_SET: $SOLR_CONFIG_SET | |
# SOLR_HEAP: 1024m | |
# labels: | |
# - 'traefik.backend=solr' | |
# - 'traefik.port=8983' | |
# - 'traefik.frontend.rule=Host:solr.${PROJECT_BASE_URL}' | |
# drupal-node: | |
# image: wodby/drupal-node:$DRUPAL_NODE_TAG | |
# container_name: "${PROJECT_NAME}_drupal_nodejs" | |
# environment: | |
# NODE_SERVICE_KEY: node-service-key | |
# labels: | |
# - 'traefik.backend=nodejs' | |
# - 'traefik.port=8080' | |
# - 'traefik.frontend.rule=Host:nodejs.${PROJECT_BASE_URL}' | |
# 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 | |
# This mirrors the Acquia 64 mb memory limit. | |
command: ["-m", "64m"] | |
networks: | |
- wioa_state_plan | |
# rsyslog: | |
# container_name: "${PROJECT_NAME}_rsyslog" | |
# image: wodby/rsyslog:$RSYSLOG_TAG | |
# 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" | |
# node: | |
# image: wodby/node:$NODE_TAG | |
# container_name: "${PROJECT_NAME}_node" | |
# working_dir: /var/www/html/path/to/theme/to/build | |
# labels: | |
# - 'traefik.backend=node' | |
# - 'traefik.port=3000' | |
# - 'traefik.frontend.rule=Host:front.${PROJECT_BASE_URL}' | |
# expose: | |
# - "3000" | |
# volumes: | |
# - ./:/var/www/html | |
# command: sh -c 'yarn install && yarn run start' | |
# blackfire: | |
# image: blackfire/blackfire | |
# container_name: "${PROJECT_NAME}_blackfire" | |
# environment: | |
# BLACKFIRE_SERVER_ID: XXXXX | |
# BLACKFIRE_SERVER_TOKEN: YYYYY | |
# 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 | |
# 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' | |
# opensmtpd: | |
# container_name: "${PROJECT_NAME}_opensmtpd" | |
# image: wodby/opensmtpd:$OPENSMTPD_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}' | |
networks: | |
- wioa_state_plan | |
traefik: | |
image: traefik:v1.7.16-alpine | |
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 | |
networks: | |
- wioa_state_plan | |
volumes: | |
## Docker-sync for macOS users | |
# docker-sync: | |
# external: true | |
## For Xdebug profiler | |
files: | |
networks: | |
# This network was added because even though when doing a docker network ls, it | |
# showed 'bridge' as the network type, it would not let any of the containers | |
# access the internet (Captcha broke / couldn't connect to s3). | |
wioa_state_plan: | |
driver: bridge | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment