はじめに
RustのdieselでPostgresに接続しようと思い、DockerでPostgresとpgAdmin4をたてました。
情報を探しても部分的にしかなかったので、備忘録的に残しておきます。
環境
Docker for WindowsでDocker Composeを使います。
Postgresは13.2、pgAdminは4.4.2を使います。
Volumeの作成
Windowsの場合、Postgresのコンテナを作る際 Volumeを作らずにマウントするとPermission Errorやらエラーが出るようです。
Docker for Windowsでpostgresのデータマウントができない人へ
Docker for Windows で postgres コンテナの Volume マウントを安全にする
ので、Volumeを作ります。
Postgres用
$ docker volume create postgres_volume
pgAdmin4用
$ docker volume create pgadmin4_volume
Containerの作成
以下のようにdocker-compose.yamlを用意します。
docker-compose.yaml
version: '3.7'
services:
postgres:
image: postgres:13.2-alpine
container_name: postgres
ports:
- 5432:5432
volumes:
- postgres_volume:/var/lib/postgresql/data
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
hostname: postgres
restart: always
user: root
pgadmin4:
image: dpage/pgadmin4:5.0
container_name: pgadmin4
ports:
- 8000:80
volumes:
- pgadmin4_volume:/var/lib/pgadmin
environment:
PGADMIN_DEFAULT_EMAIL: root
PGADMIN_DEFAULT_PASSWORD: root
hostname: pgadmin4
depends_on:
- postgres
restart: always
volumes:
postgres_volume:
external: true
pgadmin4_volume:
external: true
立ち上げます。
$ docker-compose up
pgAdminへのアクセスと設定
localhost:8000にアクセスできればOKです(root/root)。
サーバー追加で、docker-compose.yamlに記載した内容を設定すればOKです。
参考画像
まとめ
Docker for WindowsでPostgres+pgAdminのコンテナを立ち上げる方法を紹介しました。
次回はこのPostgresにRustのdieselから接続するところを書きたいと思います。