phpMyAdminに認証をつけたい!と思ったものの……
よく分からず力業でなんとかした記録。
誰かが「そんなんこうしたら一瞬じゃん?」って言ってくれることを希望。
■dockerに公式のphpMyAdminがあります
https://hub.docker.com/r/phpmyadmin/phpmyadmin/
phpmyadminコンテナに入ります
docker exec -it phpmyadmin sh
いつもの癖で bash
って打つと「そんなハイカラなものは知らない」と一蹴されます。
htpasswdコマンドを使えるようにします
htpasswdコマンドは not found
になります。Alpineという個人的に馴染みのないディストリビューションのため、htpasswdを入れるのにどうしたら良いか分からないので調べました。
apk add apache2-utils
nginxの設定にBASIC認証を追記します
location / {
(以下 追記)
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
.htpasswdファイルを作る
htpasswd -c /etc/nginx/.htpasswd {アカウント}
そしてパスワードを設定。
イメージファイルを保存
docker commit phpmyadmin phpmyadmin
分かりにくいですが、左がコンテナ名で、右が保存するイメージ名です。イメージ名は /
で区切るのが推奨されていますが、内部で使うだけなので省略。
docker-compose.ymlを修正
phpmyadmin:
image: phpmyadmin
# image: phpmyadmin/phpmyadmin
そして docker-compose を落とし上げ
docker-compose down && docker-compose up -d
で認証がかかるようになります。