如何使用PHPStorm调试我的docker

时间:2016-06-17 16:07:00

标签: docker

我经常搜索,我尝试了很多。我的问题非常简单"如何使用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设置

enter image description here

它不适合我,我错过了什么?谢谢你的帮助。

1 个答案:

答案 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