Le débogage à distance avec XDebug à l'intérieur d'un conteneur Docker ne fonctionne pas
Je suis en train de configurer un dockered AMP environnement et ne peut pas obtenir le débogueur distant de travail. Ma configuration est comme suit:
J'ai un conteneur de base de données sous mysql qui fonctionne comme un charme. J'ai construit un menu fixe l'image 'phpmysqli" avec la suite de Dockerfile
FROM php:apache
RUN docker-php-ext-install mysqli mbstring
# zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
RUN pecl install xdebug
RUN echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so' >> /usr/local/etc/php/php.ini
RUN touch /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_enable=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_autostart=0 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_connect_back=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_port=9000 >> /usr/local/etc/php/conf.d/xdebug.ini; \
echo xdebug.remote_log=/tmp/php5-xdebug.log >> /usr/local/etc/php/conf.d/xdebug.ini;
RUN echo 'date.timezone = Europe/Berlin' > /usr/local/etc/php/conf.d/date.ini
J'appelle
docker run --rm -ti --name web -p 127.0.0.1:8080:80 -v /path/to/projects:/var/www/html --link db:db phpmysqli
Après cette phpinfo respectivement php -je montre que xdebug 2.3.2 est en place et en cours d'exécution.
Ensuite, j'ai de l'installation d'un Serveur à l'intérieur de IntelliJ IDEA appelé "Docker" avec l'Hôte 127.0.0.1
Port 8080
et Débogueur de Xdebug. - Je configurer le chemin d'accès de la cartographie analogue pour le mappage de Volume dans le menu fixe instruction d'exécuter.
Dans le PHP->paramètres de Débogage j'ai vérifié que j'utilise le port 9000
pour les connexions entrantes, que je vais accepter les connexions externes et que je ne vais pas ignorer les connexions à partir d'un autre serveurs.
Après cela, j'ai créé une nouvelle version de PHP à Distance Configuration de Débogage appelé Docker, trop. Le serveur est Docker, id de session est XDEBUG_IDEA
.
Je peux appeler des fichiers PHP sur le Contenant, je peux me connecter à la db via le lien... mais pour quelque raison il n'est rien qui se passe quand j'essaie de démarrer une session de débogage. J'ai essayé d'utiliser un cookie (et oui, j'ai mis XDEBUG_IDEA
comme id de session dans l'extension xdebug helper). J'ai essayé d'envoyer des XDEBUG_SESSION_START=XDEBUG_IDEA
comme GET
...
Pouvez-vous smart gens me dire ce que j'ai raté?
source d'informationauteur Christoph Grimmer-Dietrich
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayez avec cette configuration. php-apache construire fournir deux méthode pour compiler et d'activer le module php.
C'est plus agréable à utiliser
docker-php-ext-enable xdebug
pour corriger le fichier de configuration.à proximité:
xdebug.remote_connect_back=0
ajouter:
xdebug.remote_host=192.168.0.102[your docker host/machine IP]