docker中的xdebug debug php,带有Mac上的Vscode
我正在码头容器中运行Symfony应用程序。 我想在Mac上使用VSCODE调试代码。使用Windows一切正常。 调试器正在连接到容器,但不会在断点处停止。
启动。
{
"version": "0.1.0",
"configurations": [{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003,
"log": true,
"externalConsole": false,
"pathMappings": {
"/srv/app": "${workspaceFolder}",
"/srv/cssp/src/WorkingBundle": "${workspaceFolder}/src/WorkingBundle"
},
"ignore": [
"**/vendor/**/*.php"
]
},
]
这是
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=trigger
我
FROM composer:latest AS composer
FROM php:7.2-apache-stretch
COPY --chown=33:33 . /srv/cssp
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY .docker/php.ini /usr/local/lib/
COPY .docker/php.ini /usr/local/lib/php
COPY .docker/php.ini /usr/local/etc/php
WORKDIR /srv/symfonyApp
ENV COMPOSER_ALLOW_SUPERUSER 1
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN chown -R www-data:www-data /srv/symfonyApp\
&& apt-get update \
&& apt-get -y install libpng-dev libjpeg-dev unzip\
&& docker-php-ext-install -j$(nproc) mbstring mysqli pdo pdo_mysql shmop zip gd \
&& a2enmod rewrite ssl socache_shmcb \
&& service apache2 restart \
&& composer install \
&& chown -R www-data:www-data /srv/symfonyApp\
&& useradd -rm -d /home/symfonyApp -s /bin/bash -g root -G sudo -u 503 cssp \
&& pecl install xdebug \
&& apt install nano \
&& docker-php-ext-enable xdebug \
&& apt-get install libfontconfig1 libxrender1 libxtst6
的
version: '3.8'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: symfonyApp-docker
ports:
- 8080:80
links:
- mysql
volumes:
- .:/srv/symfonyApp
environment:
PHP_IDE_CONFIG: 'serverName=localhost'
XDEBUG_SESSION: 'VSCODE'
mysql:
image: mariadb:10.4.4
container_name: symfonyApp_mysql
volumes:
- .docker/mysql/init:/docker-entrypoint-initdb.d
restart: always
ports:
- 13306:3306
environment:
MYSQL_ROOT_PASSWORD: secret
I am running a Symfony application inside a Docker-Container.
I want to debug the code with VSCode on my mac. With Windows everything works fine.
The debugger is connecting to the container, but does not stop at the breakpoints.
This is my launch.json
{
"version": "0.1.0",
"configurations": [{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9003,
"log": true,
"externalConsole": false,
"pathMappings": {
"/srv/app": "${workspaceFolder}",
"/srv/cssp/src/WorkingBundle": "${workspaceFolder}/src/WorkingBundle"
},
"ignore": [
"**/vendor/**/*.php"
]
},
]
In the php.ini I added
xdebug.mode=debug
xdebug.client_host=host.docker.internal
xdebug.start_with_request=trigger
My Dockerfile
FROM composer:latest AS composer
FROM php:7.2-apache-stretch
COPY --chown=33:33 . /srv/cssp
COPY .docker/vhost.conf /etc/apache2/sites-available/000-default.conf
COPY .docker/php.ini /usr/local/lib/
COPY .docker/php.ini /usr/local/lib/php
COPY .docker/php.ini /usr/local/etc/php
WORKDIR /srv/symfonyApp
ENV COMPOSER_ALLOW_SUPERUSER 1
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN chown -R www-data:www-data /srv/symfonyApp\
&& apt-get update \
&& apt-get -y install libpng-dev libjpeg-dev unzip\
&& docker-php-ext-install -j$(nproc) mbstring mysqli pdo pdo_mysql shmop zip gd \
&& a2enmod rewrite ssl socache_shmcb \
&& service apache2 restart \
&& composer install \
&& chown -R www-data:www-data /srv/symfonyApp\
&& useradd -rm -d /home/symfonyApp -s /bin/bash -g root -G sudo -u 503 cssp \
&& pecl install xdebug \
&& apt install nano \
&& docker-php-ext-enable xdebug \
&& apt-get install libfontconfig1 libxrender1 libxtst6
And my docker-compose.yml
version: '3.8'
services:
app:
build:
context: .
dockerfile: .docker/Dockerfile
image: symfonyApp-docker
ports:
- 8080:80
links:
- mysql
volumes:
- .:/srv/symfonyApp
environment:
PHP_IDE_CONFIG: 'serverName=localhost'
XDEBUG_SESSION: 'VSCODE'
mysql:
image: mariadb:10.4.4
container_name: symfonyApp_mysql
volumes:
- .docker/mysql/init:/docker-entrypoint-initdb.d
restart: always
ports:
- 13306:3306
environment:
MYSQL_ROOT_PASSWORD: secret
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论