2024.01 Docker Compose Laravel10入門の自分用学習メモ
PhpStorm - Docker Compose エラーになった設定を直したメモ
PhpStorm / Docker で Docker Compose YAML 解析がエラー
Error while parsing "docker-compose.yml":
Docker Desktop が古かったので最新更新ONにしてアップデートしたら解決した
PhpStorm で Docker の PHP が認識されない
"com.intellij.docker.agent.apitaskexception"
デフォルトではなく上記を選び直せば認識される
PhpStorm から PHPUnit 実行すると内部コマンドが docker compose run になってしまう
The container name "/example-container-name-here" is already in use by container
デフォルトではなく PHPUnit Interpriter > Lifecycle > Connect to existing container を選び直して環境変数を設定すればテストが通る。環境変数は
COMPOSE_PROJECT_NAME=examplelarabbs
をPhpStorm で設定した。
refs. "Failed to parse validation script output" for remote Docker compose CLI interpreter – IDEs Support (IntelliJ Platform) | JetBrains
Docker
Docker コンテナ起動時
Error response from daemon: Ports are not available: exposing port TCP 127.0.0.1:80 -> 0.0.0.0:0: failed to connect to /var/run/com.docker.vmnetd.sock: is vmnetd running?: dial unix /var/run/com.docker.vmnetd.sock: connect: no such file or directory
make: *** [init] Error 1
Webポート番号を 80 から 8089 に変更したら回避できたが、原因と解決方法は不明。
Laravel のテストDB
- 準備:
phpunit.xml
の環境変数定義DB_DATABASE
で任意のテストDB名を定義し、自前でDB作成(sailの該当シェルと compose 設定をコピペした) - 実行:テストクラスに
use RefreshDatabase
REPL
/var/www/html$ php artisan tinker
Psy Shell v0.12.0 (PHP 8.3.2 — cli) by Justin Hileman
Storage::put('text.txt', 'Hello, REPL!');Error Class "League\Flysystem\AwsS3V3\PortableVisibilityConverter" not found.
のとおり
composer require league/flysystem-aws-s3-v3 "^3.0" --with-all-dependencies
で回避。