How to fix error "Error: Database is uninitialized and superuser password is not specified."
You can use the POSTGRES_HOST_AUTH_METHOD
environment property by making the following change to your docker-compose.yml
.
db: image: postgres:9.6-alpine environment: POSTGRES_DB: "db" POSTGRES_HOST_AUTH_METHOD: "trust"
The above will solve the error.
To avoid that you can specify the followings environments variables for postgres container on your docker-compose file.
POSTGRES_PASSWORDThis environment variable is normally required for you to use the PostgreSQL image. This environment variable sets the superuser password for PostgreSQL. The default superuser is defined by the POSTGRES_USER environment variable.
POSTGRES_DBThis optional environment variable can be used to define a different name for the default database that is created when the image is first started. If it is not specified, then the value of POSTGRES_USER will be used.
For more information about Environment Variables check:https://hub.docker.com/_/postgres
It's already mentioned in the interactive mode; how to run the container, if you don't find it, use the following:
To allow all connections without a password use:
- docker run -e POSTGRES_HOST_AUTH_METHOD=trust postgres:9.6 (use the tag you need).
To specify postgres password for the superuser, use:
- docker run -e POSTGRES_PASSWORD=<your_password> postgres:9.6 (use the tag you need).