diff --git a/README.md b/README.md index cda969809bb5cb0d95786b0fdeb79b721f113906..0e267fe5721cc593a94125ec88d4c120b8d3c729 100644 --- a/README.md +++ b/README.md @@ -229,6 +229,14 @@ To overwrite the default settings for the Docker environment, add the relevant p "athenapdf": { "enable": 0, "key": "" + }, + "blackfire": { + "enable": 0, + "id": "", + "token": "" + }, + "webgrind": { + "enable": 0 } } } diff --git a/src/Handler.php b/src/Handler.php index a30f18bbce98c028922219ea922dfea228afe1af..239b935ffaf250b542a163e8ddd4a56b61edd52b 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -241,6 +241,14 @@ class Handler { 'enable' => 0, 'key' => '', ], + 'blackfire' => [ + 'enable' => 0, + 'id' => '', + 'token' => '', + ], + 'webgrind' => [ + 'enable' => 0, + ], ]; return $options; } diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index e02c40c59cf40d4c31435c4eca8f9bd2f0466ddf..1d60e8c17ec1e6991713ef30c83781a334804577 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -25,18 +25,31 @@ services: PHP_XDEBUG_REMOTE_HOST: {{ docker0.ip }} PHP_IDE_CONFIG: serverName=Docker PHP_XDEBUG_REMOTE_CONNECT_BACK: 1 +{% if webgrind.enable %} + PHP_XDEBUG_PROFILER_ENABLE: 1 + PHP_XDEBUG_PROFILER_ENABLE_TRIGGER: 1 + PHP_XDEBUG_PROFILER_ENABLE_TRIGGER_VALUE: 1 + PHP_XDEBUG_PROFILER_OUTPUT_DIR: /mnt/files/xdebug/profiler + PHP_XDEBUG_TRACE_OUTPUT_DIR: /mnt/files/xdebug/traces +{% endif %} +{% endif %} +{% if blackfire.enable %} + PHP_BLACKFIRE: 1 {% endif %} SSH_AUTH_SOCK: /ssh-agent volumes: - ./:/var/www/html - ./drush:/etc/drush - $SSH_AUTH_SOCK:/ssh-agent +{% if webgrind.enable %} + - files:/mnt/files +{% endif %} {{ webserver.type }}: {% if webserver.type == 'nginx' %} image: 'wodby/drupal-nginx:{{ drupal.version }}-{{ webserver.version }}' {% elseif webserver.type == 'apache' %} - image: 'wodby/drupal-apache:2.4' + image: 'wodby/php-apache:2.4' {% endif %} depends_on: - php @@ -162,3 +175,25 @@ services: WEAVER_WORKER_TIMEOUT: 90 WEAVER_CONVERSION_FALLBACK: false {% endif %} +{% if blackfire.enable %} + + blackfire: + image: 'blackfire/blackfire' + environment: + BLACKFIRE_SERVER_ID: '{{ blackfire.id }}' + BLACKFIRE_SERVER_TOKEN: '{{ blackfire.token }}' +{% endif %} +{% if webgrind.enable %} + + webgrind: + # add XDEBUG_PROFILE=1 to your request to profile that + image: 'wodby/webgrind:1.5' + environment: + WEBGRIND_PROFILER_DIR: '/mnt/files/xdebug/profiler' + labels: + - 'traefik.backend={{ projectname }}_webgrind_1' + - 'traefik.port=8080' + - 'traefik.frontend.rule=Host:webgrind.{{ projectname }}.docker.localhost' + volumes: + - files:/mnt/files +{% endif %}