Conao3 Notes

さくっとpostgreSQLを立ち上げたいときのメモ

はじめに

今SQLを叩きたいぞというときが稀にある。 そもそもそういうときはこの「はじめに」すら読み飛ばすので、さっさと方法を書く。

プロジェクトに紐付かない場合 (docker)

最短でpostgresを立ち上げたい場合、直接dockerで上げてしまう。

docker run --rm -it -e POSTGRES_PASSWORD=password -p 15432:5432 postgres

以下の情報で接続できる。

  • host: localhost
  • port: 15432
  • db_name: postgres
  • user: postgres
  • password: password

プロジェクトに紐付く場合 (docker-compose)

プロジェクトのローカルDB環境としてpostgresを立ち上げたいなら、docker-composeを使ってメンバーと共有した方が良い。 起動方法もdocker-composeに隠蔽されるので便利。

docker/postgres/Dockerfile として以下の内容で保存する。

FROM postgres:15

RUN localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8
ENV LANG ja_JP.utf8
ENV LC_MESSAGES en_US.utf8

compose.yml に以下内容で保存する。

services:
  db:
    build:
      context: ./docker/postgres
    command: log_statement=all
    ports:
      - ${DB_PORT}:5432
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}

最後に .env に以下内容を用意しておく。

DB_PORT=15432
DB_NAME=postgres
DB_USER=postgres
DB_PASSWORD=password

で、以下のコマンドで起動する。

docker-compose up

postgresもlocaleでソート順が変わるという罠挙動があるので、それを確かめたいときなどはDockerfileを書けると便利。