docker中的xdebug debug php,带有Mac上的Vscode

发布于 2025-01-27 06:08:07 字数 2426 浏览 3 评论 0原文

我正在码头容器中运行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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文