■ はじめに
https://dk521123.hatenablog.com/entry/2023/07/20/025544
の続き。 PostgreSQL を docker compose で作ったが、 やっぱり開発をスムーズにするには Web UI が欲しいなっと 思ったので、調べてみた。 # PostgreSQL といえば、pgAdmin だと思っていたけど # Pgwebってのもある なお、以下の関連記事で行ったものをベースにしている。 (特にPostgreSQL部分は、以下を参照のこと)
Docker compose ~ PostgreSQL ~
https://dk521123.hatenablog.com/entry/2023/07/20/025544
目次
【1】Pgweb 1)動作確認 【2】pgAdmin 1)動作確認 2)サーバ設定を省略する方法
【1】Pgweb
version: '3' services: postgres: image: postgres:latest container_name: postgres hostname: postgresql restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password PGPASSWORD: password POSTGRES_DB: sample TZ: "Asia/Tokyo" ports: - 5431:5432 volumes: - ./init-db:/docker-entrypoint-initdb.d pgweb: container_name: pgweb hostname: pgweb restart: always image: sosedoff/pgweb ports: - "18081:8081" environment: # Refer to https://github.com/sosedoff/pgweb/wiki/Usage # postgres://user:password@host:port/database?sslmode=[mode] DATABASE_URL: postgres://postgres:password@postgresql:5432/sample?sslmode=disable depends_on: - postgres volumes: postgres: name: v_postgres
1)動作確認
# 起動 sudo docker compose up -d # ブラウザで以下に接続
# 削除 sudo docker compose down -v
参考文献
https://qiita.com/ihatov08/items/e33dae179363218da599
http://serverarekore.blogspot.com/2021/11/dockerpgwebpostgresql14.html
【2】pgAdmin
version: '3' services: postgres: image: postgres:latest container_name: postgres hostname: postgresql restart: always environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password PGPASSWORD: password POSTGRES_DB: sample TZ: "Asia/Tokyo" ports: - 5431:5432 volumes: - volume_postgres:/var/lib/postgresql/data - ./init-db:/docker-entrypoint-initdb.d pgadmin: image: dpage/pgadmin4 container_name: pgadmin hostname: pgadmin restart: always ports: - 18080:80 volumes: - volume_pgadmin:/var/lib/pgadmin environment: PGADMIN_DEFAULT_EMAIL: demo@sample.com PGADMIN_DEFAULT_PASSWORD: password depends_on: - postgres volumes: volume_postgres: name: v_postgres volume_pgadmin: name: v_pgadmin
1)動作確認
# 起動 sudo docker compose up -d # ブラウザで以下に接続
以下で、ログインする * Email Andree/Username: demo@sample.com * Password: password [Servers]を右クリックし、[Register]-[Server...]を選択し 以下を入力し、「Save」ボタン押下 ~~~~~~ [General] name: 任意(e.g. sample) [Connect] Hostname/address: postgresql Post: 5432 Maintenance database: sample Username: postgres Password: password Save password: 任意 ~~~~~~ # 削除 sudo docker compose down -v
2)サーバ設定を省略する方法
* 以下を参考にしてできた。
https://stackoverflow.com/questions/64620446/adding-postgress-connections-to-pgadmin-in-docker-file
* 以下のGithubも参照
https://github.com/dk521123/HelloWorldForFlinkWithPostgreSQL
フォルダ構成
* 以下をフォルダ・ファイルを追加 + init-pgadmin + pgpass + servers.json
pgpass
# ホスト名:ポート番号:データベース名:ユーザ名:パスワード postgresql:5432:sample:postgre:password
servers.json
{ "Servers": { "1": { "Name": "sample", "Group": "docker_postgres_group", "Host": "postgresql", "Port": 5432, "MaintenanceDB": "sample", "Username": "postgres", "PassFile": "/pgpass", "SSLMode": "disable" } } }
compose.yaml
# ★部分を追加 volumes: - volume_pgadmin:/var/lib/pgadmin - ./init-pgadmin/servers.json:/pgadmin4/servers.json # ★preconfigured servers/connections - ./init-pgadmin/pgpass:/pgpass # ★passwords for the connections in this file
参考文献
https://qiita.com/Akhr/items/8d5b5127ee971a640253
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker ~ 基本編 / docker network ~
https://dk521123.hatenablog.com/entry/2022/04/30/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ PostgreSQL ~
https://dk521123.hatenablog.com/entry/2023/07/20/025544
Flink + PostgreSQL を docker compose で構築する
https://dk521123.hatenablog.com/entry/2023/07/28/220039