😵💫
Dockerでpostgresを立ち上げたときにRestartingが出た時の備忘録
何が起きたか
VPS上にdocker-compose.yamlを用意してpostgresを立ち上げたが、docker ps
で確認するとずっとRestarting
になっていた。
version: '3.8'
services:
postgres:
image: postgres:14.2-alpine
container_name: postgres
ports:
- 5432:5432
volumes:
- ./docker/postgres/init.d:/docker-entrypoint-initdb.d
- ./docker/postgres/pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_INITDB_ARGS: "--encoding=UTF-8"
POSTGRES_DB: postgres
hostname: postgres
restart: always
user: root
docker compose up
で立ち上げてコンソールを見ると、以下が定期的に出力されていました。
FATAL: could not open directory "pg_notify": No such file or directory
LOG: database system is shut down
また、ローカルの環境では問題なく動作確認はできており、以下のような状態でした。
- ローカル環境で動作していたプロジェクトをGithubにアップ
- VPS上にclone
- VPS上で
docker compose up -d
で動かす。
原因
docker-compose.yaml
に以下で定義していあるdocker
フォルダ内にゴミがありました。
volumes:
- ./docker/postgres/init.d:/docker-entrypoint-initdb.d
- ./docker/postgres/pgdata:/var/lib/postgresql/data
ローカルで動作確認をした際に作成されたdocker
フォルダも一緒にcommit&pushしてVPS環境で動かしていました。
dockerフォルダをフォルダごと削除し改めてdocker compose up
を叩いたら起動するようになりました。
他試したが効果がなかったもの
docker compose drop -v
でボリュームも削除して起動し直す
docker rmi 'imageのID'
でイメージを削除して起動し直す
postgresのバージョンを変えてみたり
学び
dockerフォルダも.gitignore
に含める
Discussion