Почему не работает XDebug с Docker?

Хочу настроить локально Docker(WSL2) + VS Code + XDebug 3.
Гуглил и искал на форумах, но эта связка не работает. Конфиги:
xdebug.ini
[XDebug]
xdebug.mode = develop
xdebug.start_with_request = yes
xdebug.client_host = host.docker.internal
xdebug.client_port = 9003


docker-compose.yml
version: '3'

networks:
  default:
    driver: bridge

services:

  frontend:
    build: frontend
    ports:
      - 20080:80
    volumes:
      # Re-use local composer cache via host-volume
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      # Mount source-code for development
      - ./:/app

  backend:
    build: backend
    ports:
      - 21080:80
    volumes:
      # Re-use local composer cache via host-volume
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      # Mount source-code for development
      - ./:/app

  php:
    image: yiisoftware/yii2-php:7.2-apache
    volumes:
      - ~/.composer-docker/cache:/root/.composer/cache:delegated
      - ./:/app:delegated
      - ./docker/php/xdebug.ini:/usr/local/etc/php/conf.d/xdebug.ini
      - ./docker/apache/000-default.conf:/etc/apache2/sites-available/000-default.conf
    environment:
      - PHP_ENABLE_XDEBUG=1
      - XDEBUG_CLIENT_PORT=9003
    ports:
      - '80:80'
    networks:
      - default
    depends_on:
      - db
  db:
    image: mysql:5.7.16
    restart: always
    environment:
      - MYSQL_DATABASE=yii2advanced
      - MYSQL_USER=user
      - MYSQL_PASSWORD=root
      - MYSQL_ROOT_PASSWORD=root
    ports:
      - '13306:3306'
    command: mysqld --sql_mode='' --character-set-server=utf8 --collation-server=utf8_general_ci
    volumes:
      - ./docker/mysql:/var/lib/mysql
    networks:
      - default
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    ports:
      - '8888:80'
    environment:
      - PMA_ARBITRARY=1
      - PMA_HOST=db
    depends_on:
      - db


launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "app": "${workspaceFolder}"
            },
            "hostname": "localhost"
        }
    ]
}


Подскажите, в чем проблема может быть?
  • Вопрос задан
  • 310 просмотров
Пригласить эксперта
Ответы на вопрос 2
@ISE73
Скорее всего по тому что порт 9003 не проброшен.
В секцию PHP в порты добавьте
- '9003:9003'
Ответ написан
@elmysone
Тоже мучаюсь с этим на PHPStorm. Дебаггер стартует, если поставить опцию с первой строки. Но в точке - не ловится, хотя если запустить хост - IDE сигнал ловит и просит указать файл для маппинга. Что только не пробовал с маппингом - без толку.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы