MacBook Pro affichant un éditeur de code

Docker: Comment utiliser XDebug avec docker-compose

Docker

Dans le fichier docker-compose.yml créer une image images/php

importer:
    build: images/php
    ports:
        - 80:80
    volumes:
        - ../..:/var/www

trouvez votre adresse IP (ifconfig / ipconfig), dans mon exemple (10.1.0.133)

Créer un fichier Dockerfile dans le dossier images/php

FROM php:7.0.1-apache

RUN yes | pecl install -o -f xdebug \
    && rm -rf /tmp/pear \
    && echo "zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20151012/xdebug.so" > /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_host=10.1.0.133" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "xdebug.remote_connect_back=On" >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo "memory_limit = 64M" > /usr/local/etc/php/conf.d/php.ini \
    && echo "xdebug.remote_autostart = 1" >> /usr/local/etc/php/conf.d/xdebug.ini

Une fois que cela est fait, redémarrer votre docker-machine

PhpStorm

Dans mon exemple, ma machine a l’adresse IP: 192.168.99.100

Configuration du debugger Xdebug dans PhpStorm

Configuration du serveur

Configuration du serveur docker dans PhpStorm

Maintenant PhpStorm va recevoir les informations, et il est possible de debugger

Console

Si vous utilisez la ligne de commande, n’oubliez pas d’utiliser la variable

Windows:

set PHP_IDE_CONFIG="serverName=docker"

Linux / Mac OS X:

export PHP_IDE_CONFIG="serverName=docker"