はじめに
DockerでPostgresコンテナを作成後、起動しようとするとPostgres接続時のパスワード認証エラーが発生しました。
遠回りして解決までに時間がかかってしまったので、備忘録としてまとめます。
問題
コンポーネントファイルを作成し、起動したところ下記のエラーが発生しました。
SQL State : 28P01
Error Code : 0
Message : FATAL: ���[�U�["myuser"�̃p�X���[�h�F�Ɏ��s���܂���
作成したコンポーネント
compose.yaml
services:
postgres:
image: 'postgres:latest'
environment:
- 'POSTGRES_DB=mydatabase'
- 'POSTGRES_PASSWORD=secret'
- 'POSTGRES_USER=myuser'
ports:
- '5432:5432'
原因
ローカル(私のPCのポート5432)がすでに使用されていたため。
# ホスト側でポート使用状況を確認
lsof -i :5432 # Mac/Linux
netstat -ano | findstr 5432 # Windows
解決方法
5432以外ののポート番号に変更する
compose.yaml
services:
postgres:
image: 'postgres:latest'
environment:
- 'POSTGRES_DB=mydatabase'
- 'POSTGRES_PASSWORD=secret'
- 'POSTGRES_USER=myuser'
ports:
- - '5432:5432'
+ - '5433:5432'
おわりに
最初はパスワードが登録されていないことが理由かとおもい、コンテナの内部に入ってpostgresのパスワードを登録したり、いろいろ試していました。
アプリケーションログだけでなく、コンテナ起動時のログも見る必要があると痛感しました。
