Toto je odpadkový príspevok slúžiaci predovšetkým na uloženie všetkých odkazov, ktoré som mal otvorené v taboch. Možno to znovu potrebujem alebo to niekomu pomôže. Nižšie môžu byť neúplné, chýbajúce alebo protichodné informácie, takže to berte s rezervou.

Dockerfile #

Nech je obsah vášho Dockerfile akýkoľvek, pridajte tieto riadky niekde na vhodné miesto, zvyčajne pred EXPOSE alebo COPY:

RUN apk add --no-cache $PHPIZE_DEPS linux-headers && \
    pecl install xdebug && docker-php-ext-enable xdebug

docker-compose.yml #

Základ pre docker-compose.yml je nižšie. Všimnite si .ini súbory v volumes:

version: "3.9"

services:
  app:
    build:
      context: ./
      dockerfile: Dockerfile
    image: php-fpm-81
    container_name: my-app
    restart: unless-stopped
    tty: true
    working_dir: /var/www
    volumes:
      - ./:/var/www
      - ./docker/php/conf.d/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
      - ./docker/php/conf.d/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.ini

error_reporting.ini #

Obsah error_reporting.ini je jednoduchý a v skutočnosti by mohol byť vynechaný, ale chceme debugovať:

error_reporting=E_ALL

xdebug.ini #

Obsah docker-php-ext-xdebug.ini je najdôležitejší:

zend_extension=xdebug

[xdebug]
xdebug.client_host=host.docker.internal
xdebug.client_port=9003
xdebug.discover_client_host=true
xdebug.idekey=VSCODE
xdebug.mode=develop,debug
xdebug.start_with_request=yes

launch.json #

Hoci používam neovim na všetko, na debugovanie som si ho ešte nestihol nastaviť. Príležitostné debugovanie cez vscode mi zatiaľ stačí:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Listen for Xdebug",
      "type": "php",
      "request": "launch",
      "port": 9003,
      "pathMappings": {
        "/var/www/": "${workspaceFolder}"
      }
    }
  ]
}

Pre debugovanie cez docker-compose a vscode by to malo stačiť. Užívajte!

Odkazy #