Docker環境でphp8 + xdebug3を設定する

Docker composeでそれっぽい環境を用意して、xdebug動かしてみたよって話です。
docker-composeの定義
こんな感じです。
version: "3"
volumes:
db-store:
services:
db:
image: postgres:11
volumes:
- db-store:/var/lib/postgresql/data
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
TZ: "Asia/Tokyo"
ports:
- 5432:5432
php:
build:
context: ./docker/php/
dockerfile: Dockerfile
volumes:
- ./:/app:cached
depends_on:
- db
web:
image: nginx:alpine
ports:
- 80:80
depends_on:
- php
volumes:
- ./:/app:cached
- ./var/log/nginx:/var/log/nginx/
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- /app/.git
- /app/.data
- /app/docker
php用のdocker fileの設定
FROM php:8.0-fpm
RUN apt-get update \
&& apt-get install -y zlib1g-dev mariadb-client libzip-dev libpq-dev \
&& docker-php-ext-install zip pdo_pgsql \
&& pecl install xdebug \
&& docker-php-ext-enable xdebug
COPY php.ini /usr/local/etc/php/
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /app
xdebug3用にphp.iniを書く
こんな感じで、xdebug3だと結構2とは設定が変わってます。
[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
xdebug.log=/tmp/xdebug.log
xdebug.client_port=9200
PHPStormの設定
Setting -> PHP -> DebugのDebug Portに9200を設定する

Setting -> PHP -> Serversでlocalhost, 80, でProject FilesのAbsolute path on the serverパスに /app を設定する
