先日、Laravel Sailについて質問を受けた内容です。
PhpMyAdminを使いたいということで、自身で調べてdocker-composeにサービスの追加をしたけど、動かないということでした。
Sail を起動して、ブラウザでPhpMyAdminにログインしようとすると、エラーになってしまいます。
とりあえずMySQLの疎通確認から。
Laravelコンテナからマイグレーションの実行はできているので、MySQLコンテナ自体はちゃんと動いているようです。
$ sail artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (553.47ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (767.61ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (589.25ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (380.02ms)
コンテナ起動時にも、ちゃんとphpmyadminコンテナが起動してます。
$ sail up -d
Creating network "laraveltest_phpmyadmin_sail" with driver "bridge"
Creating laraveltest_phpmyadmin_mailhog_1 ... done
Creating laraveltest_phpmyadmin_redis_1 ... done
Creating laraveltest_phpmyadmin_mysql_1 ... done
Creating laraveltest_phpmyadmin_selenium_1 ... done
Creating laraveltest_phpmyadmin_meilisearch_1 ... done
Creating laraveltest_phpmyadmin_phpmyadmin_1 ... done
Creating laraveltest_phpmyadmin_laravel.test_1 ... done
$ sail ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------------------------
laraveltest_phpmyadmin_laravel.test_1 start-container Up 0.0.0.0:80->80/tcp, 8000/tcp
laraveltest_phpmyadmin_mailhog_1 MailHog Up 0.0.0.0:1025->1025/tcp, 0.0.0.0:8025->8025/tcp
laraveltest_phpmyadmin_meilisearch_1 tini -- /bin/sh -c ./meili ... Up (healthy) 0.0.0.0:7700->7700/tcp
laraveltest_phpmyadmin_mysql_1 /entrypoint.sh mysqld Up (healthy) 0.0.0.0:3306->3306/tcp, 33060/tcp, 33061/tcp
laraveltest_phpmyadmin_phpmyadmin_1 /docker-entrypoint.sh apac ... Up 0.0.0.0:8080->80/tcp
laraveltest_phpmyadmin_redis_1 docker-entrypoint.sh redis ... Up (healthy) 0.0.0.0:6379->6379/tcp
laraveltest_phpmyadmin_selenium_1 /opt/bin/entry_point.sh Up 4444/tcp, 5900/tcp
Laravel本体のコンテナとMySQLのコンテナは疎通してて、PhpMyAdminからだとつながってないような状況なので、コンテナ内でなんか起こってるのかなと目星をつけました。
ご質問者さんに了解を取ったうえで、ボリュームを削除して作り直してみます。
sail down --volumes --remove-orphans
Stopping laraveltest_phpmyadmin_laravel.test_1 ... done
Stopping laraveltest_phpmyadmin_phpmyadmin_1 ... done
Stopping laraveltest_phpmyadmin_meilisearch_1 ... done
Stopping laraveltest_phpmyadmin_selenium_1 ... done
Stopping laraveltest_phpmyadmin_mysql_1 ... done
Stopping laraveltest_phpmyadmin_redis_1 ... done
Stopping laraveltest_phpmyadmin_mailhog_1 ... done
Removing laraveltest_phpmyadmin_laravel.test_1 ... done
Removing laraveltest_phpmyadmin_phpmyadmin_1 ... done
Removing laraveltest_phpmyadmin_meilisearch_1 ... done
Removing laraveltest_phpmyadmin_selenium_1 ... done
Removing laraveltest_phpmyadmin_mysql_1 ... done
Removing laraveltest_phpmyadmin_redis_1 ... done
Removing laraveltest_phpmyadmin_mailhog_1 ... done
Removing network laraveltest_phpmyadmin_sail
Removing volume laraveltest_phpmyadmin_sail-mysql
Removing volume laraveltest_phpmyadmin_sail-redis
Removing volume laraveltest_phpmyadmin_sail-meilisearch
これで直りました。どういう事象でエラーだったのかわからないけど。。。
ボリュームを消しちゃったので、MySQLも空っぽになっています。
このあと、マイグレーション・シーディングをし直してもらいました。
以上です。あなたのお役に立てれば幸いです。