我经常搜索,我尝试了很多。我的问题非常简单"如何使用PHPStorm调试我的docker。
这是我的 docker-compose.yml ,remote-host
ip是docker0' ip。
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes_from:
- app
php:
build: ./php/
expose:
- 9000
links:
- mysql
volumes_from:
- app
environment:
XDEBUG_CONFIG: "remote_host=172.17.0.1"
app:
image: php:5.6-fpm
volumes:
- .:/var/www/html
command: "true"
mysql:
image: mysql:latest
volumes_from:
- data
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: project
MYSQL_USER: project
MYSQL_PASSWORD: project
data:
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- 8080:8080
links:
- mysql
environment:
PMA_HOST: mysql
这是我的php容器Dockerfile
FROM php:5.6-fpm
RUN docker-php-ext-install pdo_mysql
RUN yes | pecl install xdebug \
&& echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name 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_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini
我运行此commnad
$ docker-compose build
$ docker-compose up -d
这是我的PHPStorm设置
它不适合我,我错过了什么?谢谢你的帮助。
答案 0 :(得分:1)
您的撰写YAML和Dockerfile中的所有内容都是正确的。尝试将xdebug.remote_connect_back=On
添加到xdebug.ini
文件中。此外,出于调试目的,请尝试在PHPStorm设置中使用端口80而不是端口9000(暂时不使用nginx)。
此外,请确保您的容器(通常是)可以访问172.17.0.1
。一种方法是在容器中运行/sbin/ip route|awk '/default/ { print $3 }'
。它应该返回172.17.0.1
。