From b9b2e28ce254fa06116a2451798eb194397f6dcd Mon Sep 17 00:00:00 2001 From: Chris Wilkinson Date: Thu, 28 Mar 2019 15:52:58 +0000 Subject: [PATCH 1/5] Enable Xdebug in dev --- .docker/php-dev.ini | 3 +++ Dockerfile | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/.docker/php-dev.ini b/.docker/php-dev.ini index e2f4933..f1c5d0f 100644 --- a/.docker/php-dev.ini +++ b/.docker/php-dev.ini @@ -1 +1,4 @@ opcache.validate_timestamps = 1 + +xdebug.remote_enable = 1 +xdebug.remote_host = host.docker.internal diff --git a/Dockerfile b/Dockerfile index e5f564f..3abeea8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -106,6 +106,16 @@ ENV APP_ENV=dev USER root ENV COMPOSER_ALLOW_SUPERUSER=true +RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS && \ + pecl install \ + xdebug-2.7.0 \ + && \ + docker-php-ext-enable \ + xdebug \ + && \ + apk del .build-deps && \ + rm -rf /var/cache/apk/ + COPY .docker/php-dev.ini ${PHP_INI_DIR}/conf.d/01-app.ini RUN bin/console assets:install && \ From 2897101102cbf67bdddf65b60d414e8059fbc833 Mon Sep 17 00:00:00 2001 From: Chris Wilkinson Date: Thu, 28 Mar 2019 16:05:57 +0000 Subject: [PATCH 2/5] Prevent Nginx timeout --- .docker/nginx/browser.conf | 1 + 1 file changed, 1 insertion(+) diff --git a/.docker/nginx/browser.conf b/.docker/nginx/browser.conf index c239ef8..2c4e414 100644 --- a/.docker/nginx/browser.conf +++ b/.docker/nginx/browser.conf @@ -15,6 +15,7 @@ server { internal; fastcgi_pass app:9000; + fastcgi_read_timeout 1d; # For Xdebug in dev environment fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME /app/public/$fastcgi_script_name; From 4b60c315c00c9599c5708bef3d6c7bdb25e9abb2 Mon Sep 17 00:00:00 2001 From: Chris Wilkinson Date: Fri, 29 Mar 2019 10:00:53 +0000 Subject: [PATCH 3/5] Add port --- .docker/php-dev.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/.docker/php-dev.ini b/.docker/php-dev.ini index f1c5d0f..da87f04 100644 --- a/.docker/php-dev.ini +++ b/.docker/php-dev.ini @@ -2,3 +2,4 @@ opcache.validate_timestamps = 1 xdebug.remote_enable = 1 xdebug.remote_host = host.docker.internal +xdebug.remote_port = 9000 From 177959b0cc3bb7abb1305de6d0eb17bf8d5d5b22 Mon Sep 17 00:00:00 2001 From: Chris Wilkinson Date: Fri, 29 Mar 2019 14:52:00 +0000 Subject: [PATCH 4/5] Divide traffic between app and app-debug --- .docker/nginx/browser.conf | 11 +++++++++-- .docker/php-debug.ini | 3 +++ .docker/php-dev.ini | 4 ---- Dockerfile | 17 +++++++++++++---- docker-compose.override.yaml | 19 +++++++++++++++++++ 5 files changed, 44 insertions(+), 10 deletions(-) create mode 100644 .docker/php-debug.ini diff --git a/.docker/nginx/browser.conf b/.docker/nginx/browser.conf index 2c4e414..27603da 100644 --- a/.docker/nginx/browser.conf +++ b/.docker/nginx/browser.conf @@ -1,3 +1,10 @@ +resolver 127.0.0.11; + +map $cookie_XDEBUG_SESSION $fastcgi_pass { + default app; + ~.+ app-debug; +} + server { server_name localhost; listen 80; @@ -14,8 +21,8 @@ server { include fastcgi_params; internal; - fastcgi_pass app:9000; - fastcgi_read_timeout 1d; # For Xdebug in dev environment + fastcgi_pass $fastcgi_pass:9000; + fastcgi_read_timeout 1d; # For Xdebug fastcgi_split_path_info ^(.+\.php)(/.*)$; fastcgi_param SCRIPT_FILENAME /app/public/$fastcgi_script_name; diff --git a/.docker/php-debug.ini b/.docker/php-debug.ini new file mode 100644 index 0000000..d7b5ddb --- /dev/null +++ b/.docker/php-debug.ini @@ -0,0 +1,3 @@ +xdebug.remote_enable = 1 +xdebug.remote_host = host.docker.internal +xdebug.remote_port = 9000 diff --git a/.docker/php-dev.ini b/.docker/php-dev.ini index da87f04..e2f4933 100644 --- a/.docker/php-dev.ini +++ b/.docker/php-dev.ini @@ -1,5 +1 @@ opcache.validate_timestamps = 1 - -xdebug.remote_enable = 1 -xdebug.remote_host = host.docker.internal -xdebug.remote_port = 9000 diff --git a/Dockerfile b/Dockerfile index 3abeea8..55d927e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -106,6 +106,18 @@ ENV APP_ENV=dev USER root ENV COMPOSER_ALLOW_SUPERUSER=true +COPY .docker/php-dev.ini ${PHP_INI_DIR}/conf.d/01-app.ini + +RUN bin/console assets:install && \ + rm -rf var/* + + + +# +# Stage: Debug environment +# +FROM dev AS debug + RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS && \ pecl install \ xdebug-2.7.0 \ @@ -116,7 +128,4 @@ RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS && \ apk del .build-deps && \ rm -rf /var/cache/apk/ -COPY .docker/php-dev.ini ${PHP_INI_DIR}/conf.d/01-app.ini - -RUN bin/console assets:install && \ - rm -rf var/* +COPY .docker/php-debug.ini ${PHP_INI_DIR}/conf.d/02-app.ini diff --git a/docker-compose.override.yaml b/docker-compose.override.yaml index 6026da4..4e4ae73 100644 --- a/docker-compose.override.yaml +++ b/docker-compose.override.yaml @@ -8,3 +8,22 @@ services: - ./:/app - /app/var - /app/vendor + app-debug: + build: + context: . + target: debug + environment: + API_URI: http://web:8080 + APP_SECRET: + DEFAULT_LOCALE: ${DEFAULT_LOCALE:-en} + volumes: + - ./:/app + - /app/var + - /app/vendor + depends_on: + - api + web: + depends_on: + - api + - app + - app-debug From 12b95cfd436d6ab1f56a9ed879376b484766b35a Mon Sep 17 00:00:00 2001 From: Chris Wilkinson Date: Fri, 29 Mar 2019 16:04:52 +0000 Subject: [PATCH 5/5] Add comment --- .docker/nginx/browser.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.docker/nginx/browser.conf b/.docker/nginx/browser.conf index 27603da..4f455e8 100644 --- a/.docker/nginx/browser.conf +++ b/.docker/nginx/browser.conf @@ -1,4 +1,4 @@ -resolver 127.0.0.11; +resolver 127.0.0.11; # Docker's embedded DNS server map $cookie_XDEBUG_SESSION $fastcgi_pass { default app;