PostgreSQLのDockerで「Error: Database is uninitialized and superuser password is not specified.」
今回はPostgreSQLのDockerで「Error: Database is uninitialized and superuser password is not specified.」というエラーが起きた時の対処法についてご紹介いたします。
エラー全文は下記の通りです。
1 2 3 4 5 6 7 8 9 |
Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD to a non-empty value for the superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run". You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all connections without a password. This is *not* recommended. See PostgreSQL documentation about "trust": https://www.postgresql.org/docs/current/auth-trust.html |
PostgreSQLのDockerで「Error: Database is uninitialized and superuser password is not specified.」
docker-composeファイルを用いてPostgreSQLを起動しようとした際に表題のエラーが出ました。
私が作成したdocker-composeファイルは下記の通りです。
1 2 3 4 5 |
version: '3' services: db: image: postgres:9.6.23 |
結論としては、エラーメッセージにある通り、docker-compose.ymlにenvironmentを追加し、POSTGRES_DBとPOSTGRES_HOST_AUTH_METHODを追記しましょう。
追記した結果は下記の通りです。
1 2 3 4 5 6 7 8 |
version: '3' services: db: image: postgres:9.6.23 environment: POSTGRES_DB: "db" POSTGRES_HOST_AUTH_METHOD: "trust" |
POSTGRES_DBでDBを作成し、POSTGRES_HOST_AUTH_METHODをtrustと設定することでpasswordがなくてもコネクションが設立するようにしております。
コンテナを立ち上げるときの初期の設定として上記のように設定すればエラーは回避できます。
終わりに
今回はPostgreSQLのDockerで「Error: Database is uninitialized and superuser password is not specified.」というエラーが起きた時の対処法についてご紹介いたしました。
ディスカッション
コメント一覧
まだ、コメントがありません