- Создаем alias своего локального IP. По сути единственное отличие от Windows/Linux. Там используется интерфейс docker0, не доступный в macOS. По этой же причине в настройки xDebug добавляется xdebug.remote_connect_back = off
sudo ifconfig lo0 alias 10.254.254.254
[Optional] Что бы не писать после каждой перезагрузки сохраняем .plist файл
sudo curl -o /Library/LaunchDaemons/com.yuklia.docker_localhost_alias.plist https://gist.github.com/yuklia/378a7350f8a2456e9513154b962c7cb0
- Добавляем сервер в PHPStorm
- Настраиваем Debug порт. В моем случае 9000. xDebug будет стучаться на этот порт. Остальные галочки можно расставить на свой вкус.
- Конфигурируем DBG Proxy
- Пример Dockerfile на php:7-fpm с XDebug [В контейнере с ботом все это уже есть, а чего нет напишем в docker-compose.env, потому пропускаем]
FROM php:7-fpm
MAINTAINER yuklia
# upgrade the container
RUN apt-get update && \
apt-get upgrade -y
RUN apt-get install -y --force-yes curl git nano zlib1g-dev \
&& docker-php-ext-install zip pdo pdo_mysql \
&& docker-php-ext-enable zip
# install composer
RUN curl -sS https://getcomposer.org/installer | php && \
mv composer.phar /usr/local/bin/composer && \
printf "\nPATH=\"~/.composer/vendor/bin:\$PATH\"\n" | tee -a ~/.bashrc
RUN pecl install xdebug-3.0.4 \
&& docker-php-ext-enable xdebug
ARG XDEBUG_INI=/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
RUN echo "xdebug.mode=debug" >> ${XDEBUG_INI} \
&& echo "xdebug.client_host=10.254.254.254" >> ${XDEBUG_INI} \
&& echo "xdebug.client_port=9000" >> ${XDEBUG_INI} \
&& echo "xdebug.discover_client_host=false" >> ${XDEBUG_INI} \
&& echo "xdebug.idekey=PHPSTORM" >> ${XDEBUG_INI}
# install laravel envoy
RUN composer global require "laravel/envoy"
#install laravel installer
RUN composer global require "laravel/installer"
WORKDIR /var/www
- В файле docker-compose.env для xDebug v3:
XDEBUG_CONFIG=xdebug.mode=debug;xdebug.client_host=10.254.254.254;xdebug.client_port=9000;xdebug.discover_client_host=false;xdebug.idekey=PHPSTORM;
Можно просто дебажить блоки кода, где все равно на пейлоад, либо насоздавать пресетов пейлоада, добавив параметры запроса.