I am running a Symfony application inside a Docker-Container.
I want to debug the code with VSCode on my mac. With Windows everything works fine.
The debugger is connecting to the container, but does not stop at the breakpoints.
This is my launch.json
{
"version": "0.1.0",
"configurations": [{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003,
"log": true,
"externalConsole": false,
"pathMappings": {
"/srv/app": "${workspaceFolder}",
"/srv/cssp/src/WorkingBundle": "${workspaceFolder}/src/WorkingBundle"
},
"ignore": [
"**/vendor/**/*.php"
]
},
]
In the php.ini I added
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=trigger
My Dockerfile
FROM composer:latest AS composer
FROM php:7.2-apache-stretch
COPY --chown=33:33 . /srv/cssp
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY .docker/php.ini /usr/local/lib/
COPY .docker/php.ini /usr/local/lib/php
COPY .docker/php.ini /usr/local/etc/php
WORKDIR /srv/symfonyApp
ENV COMPOSER_ALLOW_SUPERUSER 1
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN chown -R www-data:www-data /srv/symfonyApp\
&& apt-get update \
&& apt-get -y install libpng-dev libjpeg-dev unzip\
&& docker-php-ext-install -j$(nproc) mbstring mysqli pdo pdo_mysql shmop zip gd \
&& a2enmod rewrite ssl socache_shmcb \
&& service apache2 restart \
&& composer install \
&& chown -R www-data:www-data /srv/symfonyApp\
&& useradd -rm -d /home/symfonyApp -s /bin/bash -g root -G sudo -u 503 cssp \
&& pecl install xdebug \
&& apt install nano \
&& docker-php-ext-enable xdebug \
&& apt-get install libfontconfig1 libxrender1 libxtst6
And my docker-compose.yml
version: '3.8'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: symfonyApp-docker
ports:
- 8080:80
links:
- mysql
volumes:
- .:/srv/symfonyApp
environment:
PHP_IDE_CONFIG: 'serverName=localhost'
XDEBUG_SESSION: 'VSCODE'
mysql:
image: mariadb:10.4.4
container_name: symfonyApp_mysql
volumes:
- .docker/mysql/init:/docker-entrypoint-initdb.d
restart: always
ports:
- 13306:3306
environment:
MYSQL_ROOT_PASSWORD: secret
Copyright Notice:Content Author:「Ted Logan」,Reproduced under the CC 4.0 BY-SA copyright license with a link to the original source and this disclaimer.
Link to original article:https://stackoverflow.com/questions/72168609/debug-php-with-xdebug-in-docker-with-vscode-on-mac