LoginSignup
1
0

More than 1 year has passed since last update.

PostgreSQL を Docker で使うときの注意点

Posted at

はじめに

公式ドキュメントをちゃんと読めば問題ないのだけど、
個人的にハマったので備忘録として

注意点

  • volume としてマウントするパスは /var/lib/postgresql/data
  • PGDATA に指定するパスは /var/lib/postgresql/data/pgdata

サンプル

  • Docker
$ docker run -d \
	-e PGDATA=/var/lib/postgresql/data/pgdata \
	-v ./data:/var/lib/postgresql/data \
	postgres:14.2-alpine
  • Docker compose
version: '3.8'
services:
  db:
    image: postgres:14.2-alpine
    volumes:
      - db-postgres:/var/lib/postgresql/data
    environment:
      PGDATA: /var/lib/postgresql/data/pgdata
volumes:
  db-postgres:

理由

Postgresの Docker ファイルで VOLUME 命令で /var/lib/postgresql/data が指定されているので、
このパス以外でマウントするとデータが上手く保存されないことがある。
Docker composeでは問題ないが、Kubernetes などのコンテナサービスでボリュームをマウントしたときに、

:/ on /var/lib/postgresql type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.3.3.235,local_lock=none,addr=10.3.3.237)
/dev/nvme0n1p1 on /var/lib/postgresql/data type xfs (rw,noatime,attr2,inode64,noquota)

のようになり、データが保存されない。

PGDATA のパスは、/var/lib/postgresql/data/ 配下であれば /var/lib/postgresql/data/db などでも問題ない。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0