крутиться в докере, как можно чекнуть из хоста что xdebug коннектиться с портом 9000? и вобщем если в докер файле не указать внешний ports, по какому каналу vscode слушает 9000 ?
php.ini
[xdebug]
xdebug.default_enable = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 0
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_port = 9000
xdebug.remote_log=/var/www/log/xdebug.log
docker
php:
build:
context: ./php
dockerfile: Dockerfile
container_name: ${COMPOSE_PROJECT_NAME}_php
extra_hosts:
- "host.docker.internal:host-gateway"
- "gitlab.etton.ru:172.19.110.200"
volumes:
- ../../src:/var/www/app
- ./php/docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh
working_dir: /var/www/app/engine
depends_on:
- postgres
links:
- postgres
restart: unless-stopped
tty: true
stdin_open: true
networks:
- net
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"log": true,
"port": 9000,
"pathMappings": {
"/var/www/app/engine": "${workspaceFolder}"
},
},
{
"name": "Launch currently open script",
"type": "php",
"request": "launch",
"program": "${file}",
"cwd": "${fileDirname}",
"port": 9000
}
]
}
в docker-compose.yml глянуть?
Сейчас прописал)) но у меня раньше без этих бубнов работала)) nginx: image: nginx:latest container_name: ${COMPOSE_PROJECT_NAME}_nginx environment: XDEBUG_CONFIG: client_host=host.docker.internal client_port=9000 extra_hosts: - "host.docker.internal:host-gateway" ports: - 80:80 volumes: - ./nginx/engine-app.conf:/etc/nginx/conf.d/default.conf - ../../src:/var/www/app depends_on: - php links: - php restart: unless-stopped
# zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20170718/xdebug.so такую штуку подключал?
нет, я готовый dev контейеер брал, там уже с xdebug. Все сводилось только к настройке конфигурационных файлов.
{ "name": "Listen for XDebug in Docker", "type": "php", "request": "launch", "port": 9999, "pathMappings": { "Абсолютный путь к папке проекта в контейнере": "${workspaceRoot}" } } Абсолютный путь какого контейнере php или nginx?
Может XDEBUG_CONFIG должен у php service? Пока не понимаю как стучиться vscode к xdebug в докере есть запрос через браузер:80, через fast_cgi запрос прилетает php-fpm контейнеру ... как vscode из хоста слушает порт 9003, который находиться внутри контейнера? связь не уловлю, кто посредник?
пробрасывать порты не нужно для 9000:9003 ?
Тогда vscode ругается) что данный порт кем-то занят
Обсуждают сегодня