🐥

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   

どうやって調べたか

他の人のブログ

ネットで検索して下記サイトを参考にさせていただきました。
https://zenn.dev/peishim/articles/f7a76ae6c253e4
下記の通りに設定すれば、基本的には上記のサイト通りに設定すれば、phpMyAdminは問題なく動作するはずです。

Dockerの公式ドキュメント

docker-compose.ymlでなぜ上記サイトで説明されていたパラメータを設定しないといけないんだろう?と疑問に思いdockerの公式ドキュメントを確認したところ、phpmyadminのクイックリファレンスがありました。
https://hub.docker.com/_/phpmyadmin
サンプルだと下記の記述になっていますね。

公式ドキュメントと変更した箇所としては下記になります。

  • 削除

    • restart
      • コンテナの再起動時のオプション。本番環境では設定した方が良いが、ローカル環境では気にしなくていいと思う。逆にrestartが設定されていることで問題が発生することもあるそうです。
        https://qiita.com/sayyyyyy/items/3ccd292a610fe075b460
    • PMA_ARBITRARY
      • 1に設定すると任意のサーバーへの接続ができるようになります。今回は特定のDBにのみ接続するので不要です。
  • 追加

    • PMA_HOSTS
      • PMA_HOSTS:MYSQLのアドレス/ホスト名を記載します。
    • PMA_USER/PMA_PASSWORD
      • ログイン時に自動で指定されるユーザ名/パスワードです。これを設定することでログイン時に毎回ユーザー情報を入力せずに済みます。
      • networks
        • 同じnetworksコンテナ同士で通信が可能になります。mysqlのコンテナがsailネットワークに属しているので、phpadminも同様に指定します。

    まとめ

    今回はLaravel Sailでphpmyadminを有効にする設定を紹介しました。正直、まだDockerfileやdocker-compose.ymlの記述方法には慣れていないので、今後も今後もDocker関連の知識を深めながら、学んだことを共有していきたいと思います。

Discussion