Я пытаюсь отладить код Laravel в коде Visual Studio с помощью Xdebug. Я использую контейнер Docker, который работает как сервер.
Но я получаю эту ошибку при попытке отладки:
Невозможно подключиться к процессу времени выполнения, тайм-аут после 10000 мс - (причина: невозможно подключиться к цели: connect ECONNREFUSED 192.168.99.100:9000).
Вот мой VSCode launch.json
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "attach",
"name": "Docker: Attach to Node",
"port": 9000,
"address": "192.168.99.100",
"localRoot": "${workspaceFolder}",
"remoteRoot": "/var/www",
"protocol": "inspector",
"restart": true
}
]
Вот docker-compose.yml
app:
build:
context: ./
dockerfile: .docker/app.dockerfile
args:
- INSTALL_XDEBUG=true
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=33061"
- "DB_HOST=192.168.99.100"
- XDEBUG_CONFIG=remote_host=192.168.99.100 remote_port=9000 remote_connect_back=0
Вот мой app.dockerfile
FROM php:7.1-fpm
RUN docker-php-ext-install pdo && docker-php-ext-install pdo_mysql
#####################################
# xDebug:
#####################################
ARG INSTALL_XDEBUG=true
RUN if [ ${INSTALL_XDEBUG} = true ]; then \
# Install the xdebug extension
pecl install xdebug && \
docker-php-ext-enable xdebug \
;fi
# Copy xdebug configration for remote debugging
COPY .docker/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
#####################################
# ZipArchive:
#####################################
ARG INSTALL_ZIP_ARCHIVE=false
RUN if [ ${INSTALL_ZIP_ARCHIVE} = true ]; then \
# Install the zip extension
docker-php-ext-install zip \
;fi
# RUN apt-get update && apt-get install -y \
# freetds-bin \
# freetds-dev \
# freetds-common \
# libct4 \
# && docker-php-ext-install pdo_dblib
# pdo_dblib
RUN apt-get update && apt-get install -y freetds-dev
RUN docker-php-ext-configure pdo_dblib --with-libdir=/lib/x86_64-linux-gnu
RUN docker-php-ext-install pdo_dblib
RUN sed -i "s|\[sqlsrv\]|\[sqlsrv\]\nhost = 172.18.250.57\nport =1435\nclient charset=UTF-8\ntds version = 8.0|g" /etc/freetds/freetds.conf
RUN usermod -u 1000 www-data
WORKDIR /var/www
CMD ["php-fpm"]
EXPOSE 9000
EXPOSE 9001
Я думаю, что VSCode не может подключиться к удаленному Xdebug с портом 9000. Но при проверке в приложении Docker image Xdebug работает правильно. Может быть, VSCode нужна дополнительная настройка. Но я не смог решить эту проблему.