エラー内容
Unable to connect to the database.
error: password authentication failed for user "xxx"
または
Password does not match for user “xxx”
原因
-
一度Dockerを立ち上げた後、認証情報(
POSTGRES_USER
やPOSTGRES_PASSWORD
)を変更した場合に発生します。 -
認証情報は、初期起動時に設定されます。その後、認証情報を変えて起動しようとしても、当初設定した値と一致しないので、エラーになります。
対応方法
- db volumeを削除して、起動する(※db volume内のデータは失われることに注意)。
## docker 削除時に、container に紐付けられた volume も削除する (docker rm --help で確認可)
$ docker rm -v <xxx>
- 以下は、container とは別に手動で volume を削除する方法(↑で上手く行けば不要)。
## docker を削除
$ docker rm <xxx>
$ docker volume ls
DRIVER VOLUME NAME
local some_db_data
$ docker volume rm <volume>
or
$ docker volume prune
WARNING! This will remove all local volumes not used by at least one container.
Are you sure you want to continue? [y/N] y
## 削除されていることを確認
$ docker volume ls
参照先