php - Xdebug 不会在断点上停止 Mac OS + Docker
问题描述
我在 Mac OS 上的 Docker 中使用 Nging+php-fpm。我正在尝试调试我的应用程序,但 PHPStorm 不会在断点处停止。
这是我的 docker-compose.yml
version: '3'
services:
app_php:
build:
context: ./docker/php
dockerfile: Dockerfile
args:
USER_ID: 1000
GROUP_ID: 1000
restart: always
environment:
XDEBUG_CONFIG: remote_host=192.168.0.92
PHP_IDE_CONFIG: serverName=localhost
volumes:
- ./docker/php/www.conf:/usr/local/etc/php-fpm.d/www.conf
- ./web:/var/www/html
depends_on:
- db
- redis
web_nginx:
image: nginx:1.17.9-alpine
restart: always
ports:
- 8090:80
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./web:/var/www/html
depends_on:
- app_php
这是 Dockerfile
FROM php:7.4-fpm-alpine3.11
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"
RUN apk add --no-cache \
shadow \
freetype \
freetype-dev \
ghostscript \
ghostscript-fonts \
gmp-dev \
graphicsmagick \
libjpeg-turbo \
libjpeg-turbo-dev \
libpng \
libpng-dev \
libwmf \
libxml2-dev \
libzip \
libzip-dev \
icu \
icu-dev \
git \
vim
# most likely used for local dev only
ARG USER_ID=1000
ARG GROUP_ID=1000
RUN usermod -u ${USER_ID} www-data \
&& groupmod -g ${GROUP_ID} www-data
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-configure zip
RUN pecl install redis \
&& docker-php-ext-enable redis
RUN docker-php-ext-install -j$(nproc) gd mysqli soap zip intl
ENV PHP_CONFIG_DIR /usr/local/etc/php
RUN apk add --no-cache --virtual .build-deps $PHPIZE_DEPS \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug \
&& apk del -f .build-deps \
&& echo "zend_extension=$(find $(php-config --extension-dir) -name xdebug.so)" > $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_enable=1' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_port=10000' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_connect_back=1' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.remote_autostart=0' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.idekey="PHPSTORM"' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini \
&& echo 'xdebug.max_nesting_level=1000' >> $PHP_CONFIG_DIR/conf.d/xdebug.ini
WORKDIR /var/www/html
我试图改变XDEBUG_CONFIG: remote_host=192.168.0.92
,XDEBUG_CONFIG: remote_host=host.docker.internal
但它没有帮助。我也可以从 docker 容器内部通过 curl 成功到达 192.168.0.92:8090。
有谁知道如何解决这个问题?
解决方案
推荐阅读
- html - 如何将自定义元素与模板一起使用?
- python - 用辅助轴绘制 2 条线,但不显示第一列数据
- r - 对从命令行 (optparse) R 传递参数感到困惑,即使使用显式“默认”选项也不会存储参数
- php - 注意:第 6 行中的数组到字符串的转换!关于 SQL 的问题
- r-markdown - RMarkdown 到 PPT:未加载 reference_doc()
- c - 无法制作:函数“http_write_chunked”的隐式声明
- nestjs - Nestjs 服务器不为 socket.io 客户端提供服务
- mysql - mysql select查询不适用于通过用户变量设置的限制和偏移量
- mysql - mariadb vs mysql * 两者如何处理 SELECT * FROM Customers WHERE City LIKE '[acs]%';
- javascript - 从类 ajaxSuccess 事件侦听器方法指向类“this”的方法是什么?