docker-composeでPostgreSQLの環境を作る


更新履歴

日付 内容
2021.08.14 記事の情報に一部追記
2018.09.29 初版

はじめに

やりたいこと

  • DockerでPostgreSQLを構築したい
  • DBviewerもDockerで構築したい -> pgAdmin 4
  • 起動したPostgreSQLに自動で初期データも突っ込みたい
  • docker-composeをGithubなどで他人(共同開発者)に公開したい

Qiitaマイルストーンで50LGTM突破したこの記事を紹介してもらいました

2021年8月の最新バージョンで書き換えました。(ただしM1Macで未検証、おそらく動作しない

docker-compose

docker-compose.yml
  postgresql:
    image: postgres:13.4
    container_name: postgresql
    ports:
      - 5432:5432
    volumes:
      - ./postgres/init:/docker-entrypoint-initdb.d
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: root
      POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
    hostname: postgres
    restart: always
    user: root

  pgadmin4:
    image: dpage/pgadmin4:5.6
    container_name: pgadmin4
    ports:
      - 80:80
    volumes:
      - ./pgadmin:/var/lib/pgadmin/storage
    environment:
      PGADMIN_DEFAULT_EMAIL: root
      PGADMIN_DEFAULT_PASSWORD: root
    hostname: pgadmin4
    restart: always

初期データセットアップ

/postgres/init配下にsqlファイルを放り込んでおくと、

postgres起動時に設定してくれる。

1_create.sql
/* DATABASEを作成 */
CREATE DATABASE pgtest;

pgAdmin 4

1.http://localhost/にアクセス
2.ログイン

設定
EmailAdress:root
Password:root
Language:japanese

3.サーバーを追加

設定
ホスト名/アドレス:postgresql
ポート番号:5432
データベースの管理:postgres
ユーザ名:root