前提
- Laravel Version11 with Sail
- Docker for Windows Desktop
- WSL2 + Ubuntu
概要
Laravelのドキュメントに書かれているそのままの方法で開発環境を立ち上げてもphpMyAdminが使えず、MySQL Workbenchとか使ってみたけど、使い慣れたphpMyAdminを使えるようにしてみた。
参考
参考1.の方法で試して見た
docker-compose.ymlに以下の内容を追加してみました。
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- db
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=db
- PMA_USER=db_user
- PMA_PASSWORD=db_password
ports:
- "8080:80"
volumes:
- ./docker/phpmyadmin/sessions:/sessions
だけど、db名やホスト名やアカウント、パスワードは変える必要がありそうだったので
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- mysql
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=mysql
- PMA_USER=sail
- PMA_PASSWORD=password
ports:
- "8080:80"
volumes:
- ./docker/phpmyadmin/sessions:/sessions
としてみて
コマンド
./vendor/bin/sail up --build
立上げ直してみたけど、phpMyAdminの画面を開くと接続エラーになった。
で、参考2.に書かれていた内容を張り付けてみた。
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
で、再度sailを起動しなおして
コマンド
./vendor/bin/sail up --build
phpMyAdminの画面を開いてパスワードなどを入力してみるが駄目だった。
なので、先ずは、Dockerの画面でMySQLのコンソールからMySQLにログインしてみた。
MySQLコンソールでの実行コマンド
mysql -h mysql -P 3306 -u sail -p
パスワードを入力し、問題なく接続できた。
そこで気づいたのが、MySQLなどはSailの環境下で動いているということ。
なので、
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
networks:
- sail
として
コマンド
./vendor/bin/sail up --build
sailを再起動して、再度phpMyAdminの画面を開きホスト名やID/Passを入力してみたところ接続できた。
これだと、毎回ID/Passなど入れる手間があるので、
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=mysql
- PMA_USER=sail
- PMA_PASSWORD=password
networks:
- sail
とした。
で、参考1.の方法についても
docker-compose.yml(一部抜粋)
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- mysql
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=mysql
- PMA_USER=sail
- PMA_PASSWORD=password
ports:
- "8080:80"
volumes:
- ./docker/phpmyadmin/sessions:/sessions
networks:
- sail
で、接続できた。
Sailで動かしているなら、これが必要でした。
docker-compose.yml(一部抜粋)
networks:
- sail