【Docker】pgAdmin用のDockerfileを作成してみる
pgAdminというDBへのアクセスやちょっとした監視、SQLの実行などをGUIで行えるツールがあります(詳しくは以下の公式ページを参照してください)。
Windowsであればインストーラを手動でインストールしてデスクトップアプリとして使用することもできますが、サーバモードとしてWebサーバのような形で使用することもできます。
サーバモードによってDBへのSQL適応などをCUIではなくWebブラウザ上のGUIから楽に行うことができるため、AWSなどでサーバモードのpgAdminを使うことも割とあるようです。
今回はそのpgAdminを1からインストールして設定する……のではなく、Dockerfileで使用する方法の備忘録になります(1からインストールしたりするよりもDockerfileでイメージとして起動させる方が楽なのでそうしました)。
では、始めます。
・pgAdminのDockerfile
ある程度まで設定されたpgAdminのイメージはDockerHubに存在しています。
なのでこのイメージをそのまま使えばよく、あとは以下の最低限のマスタユーザの設定を行えば使えます。
# マスタユーザのメールアドレス設定(xxx@yyy.zzzの形式でないとダメな様子) ENV PGADMIN_DEFAULT_EMAIL=hoge@hoge.com # マスタユーザのパスワード設定 ENV PGADMIN_DEFAULT_PASSWORD=pgAdminPassword
実際に動く形のDockerfileは以下のようになります。
・Dockerfile
# pgAdmin4公式の最新イメージを使用 FROM dpage/pgadmin4:latest # rootユーザとして実行し諸々アップデート(任意) USER root RUN apk update && apk upgrade RUN apk add musl --upgrade # pgAdminログイン用マスタユーザ環境変数を設定(必須) ENV PGADMIN_DEFAULT_EMAIL=hoge@hoge.com ENV PGADMIN_DEFAULT_PASSWORD=pgAdminPassword # pgAdminのデフォルトポート80を公開(必須) EXPOSE 80 # コンテナ起動時にpgAdminサーバ起動コマンド実行(必須) CMD ["/bin/sh", "-c", "python3 /pgadmin4/web/pgAdmin4.py"]
内容としては、ログイン用マスタユーザの設定をして、pgAdminのデフォルトポートである80を公開し、サーバ起動用のPythonを実行しているだけです。
「rootユーザとして実行し諸々アップデート(任意)」の部分を入れているのは、AWSのECRにイメージをプッシュした際のスキャンで引っかかる恐れがあるため、アップデートしています。
あとはこのDockerfileをビルドしてコンテナとして立ち上げ、作業用PCからポートフォワーディング設定をしてWebブラウザからアクセスすれば、ログイン画面が表示されるはずです。
以上がpgAdmin用のDockerfileを作成してみた内容になります。
これを実際に使ってAWS上にこのコンテナを立ち上げたりする記事は、また後で書くかもしれません。
・参考資料