Laravel SailとXdebugにDockerfileのカスタマイズが必要な記事が多く出てきましたが、
2021/8/04にでた、Laravel Sail v1.9.0から公式でサポートしているので、そちらですすめていきます。
1.9.0未満の場合はアップグレードが必要です。
前提
- Laravel Sailインストール済み
- Sailのdocker-compose.ymlファイルがプロジェクトに存在している
- composer.jsonの
"laravel/sail"
が1.9.0以上
1.Laravel Sailの停止
Laravel Sailが起動していたら停止します。
sail down
2..env
の編集
下記をLaravelの.env
に追加します
(MacとWindows(WSL2)用)
SAIL_XDEBUG_MODE=develop,debug
※Linuxの場合はLinuxホストIP設定でIPの設定が必要です
#3.docker-compose.ymlの確認
デフォルトのままだとありますが、1.9.0未満だとなかったので確認します。
Sailのdocker-compose.yml内のlaravel.test
のenvironment
に下記があることを確認します。
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
例:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/7.4
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-7.4/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mariadb
- redis
※アップグレードした場合一度 sail build --no-cache
で再ビルドが必要です
#5.確認
起動して確認します
sail up -d
sail php --version
PHP 7.4.25 (cli) (built: Oct 22 2021 12:34:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
with Xdebug v3.1.1, Copyright (c) 2002-2021, by Derick Rethans
ブラウザでの使用法はこちら