Laravel SailでphpMyadminを有効にする
Laravel Sailでlaravelの学習中に、phpMyadminを有効にする方法の紹介となります。
業務中はDBの中身を確認するのに、A5SQLを使用しているのですが、それ以外のエディタを使ってみたいな~と思い、phpmyadminを導入しました。
とても簡単な内容になりますが、phpmyadminを有効にする過程でdocker-composeの書き方の勉強もできたので、記事として投稿してみました。
初めに
phpMyadminとは
phpMyAdminとはMySQLのデータベースの中身をウェブブラウザ上で確認できるツールです。通常ならDBのテーブルの状態やレコードの値を確認しようと思ったらサーバー上でSQLコマンドを実行する必要がありますが、このアプリを使えば、ウェブブラウザ上でGUIとしてDBの管理ができます。
また、DBの確認だけでなく、テーブル作成/更新/削除、レコードの挿入/更新/削除をGUIで実行できるので、SQLの知識がなくてもDBの管理が可能となります。
完成コード
ここから先はLaravel Sailで環境構築をした前提で話を進めます。
Laravel Sailのソースコードをインストールした際にデフォルトで存在するdocker-compose.ymlファイルのservices:
配下に下記ソースコードを追加してください。
後は、
phpmyadmin:
image: phpmyadmin
depends_on:
- mysql
environment:
PMA_HOST: mysql
PMA_USER: '${DB_USERNAME}'
PMA_PASSWORD: '${DB_PASSWORD}'
ports:
- '8080:80'
networks:
- sail
どうやって調べたか
他の人のブログ
ネットで検索して下記サイトを参考にさせていただきました。
下記の通りに設定すれば、基本的には上記のサイト通りに設定すれば、phpMyAdminは問題なく動作するはずです。Dockerの公式ドキュメント
docker-compose.ymlでなぜ上記サイトで説明されていたパラメータを設定しないといけないんだろう?と疑問に思いdockerの公式ドキュメントを確認したところ、phpmyadminのクイックリファレンスがありました。
公式ドキュメントと変更した箇所としては下記になります。
-
削除
- restart
- コンテナの再起動時のオプション。本番環境では設定した方が良いが、ローカル環境では気にしなくていいと思う。逆にrestartが設定されていることで問題が発生することもあるそうです。
https://qiita.com/sayyyyyy/items/3ccd292a610fe075b460
- コンテナの再起動時のオプション。本番環境では設定した方が良いが、ローカル環境では気にしなくていいと思う。逆にrestartが設定されていることで問題が発生することもあるそうです。
- PMA_ARBITRARY
- 1に設定すると任意のサーバーへの接続ができるようになります。今回は特定のDBにのみ接続するので不要です。
- restart
-
追加
- PMA_HOSTS
- PMA_HOSTS:MYSQLのアドレス/ホスト名を記載します。
- PMA_USER/PMA_PASSWORD
- ログイン時に自動で指定されるユーザ名/パスワードです。これを設定することでログイン時に毎回ユーザー情報を入力せずに済みます。
- networks
- 同じnetworksコンテナ同士で通信が可能になります。mysqlのコンテナがsailネットワークに属しているので、phpadminも同様に指定します。
今回はLaravel Sailでphpmyadminを有効にする設定を紹介しました。正直、まだDockerfileやdocker-compose.ymlの記述方法には慣れていないので、今後も今後もDocker関連の知識を深めながら、学んだことを共有していきたいと思います。
- PMA_HOSTS
Discussion