diff --git a/.docker/nginx/browser.conf b/.docker/nginx/browser.conf index c239ef8..4f455e8 100644 --- a/.docker/nginx/browser.conf +++ b/.docker/nginx/browser.conf @@ -1,3 +1,10 @@ +resolver 127.0.0.11; # Docker's embedded DNS server + +map $cookie_XDEBUG_SESSION $fastcgi_pass { + default app; + ~.+ app-debug; +} + server { server_name localhost; listen 80; @@ -14,7 +21,8 @@ server { include fastcgi_params; internal; - fastcgi_pass app:9000; + 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/Dockerfile b/Dockerfile index e5f564f..55d927e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -110,3 +110,22 @@ 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 \ + && \ + docker-php-ext-enable \ + xdebug \ + && \ + apk del .build-deps && \ + rm -rf /var/cache/apk/ + +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