I'm trying to create a postgres container, I have the following in my Docker Compose:
db:
container_name: db
image: postgres
restart: always
environment:
#POSTGRES_USER="postgres"
POSTGRES_PASSWORD: HDFnWzVZ5bGI
ports:
- 5432:5432
volumes:
- pgdata:/var/lib/postgresql/data
adminer:
container_name: adminer
image: adminer
restart: always
ports:
- 8338:8080
And yet Docker keeps saying that the database is initialized and that the superuser is not specified. Where am I going wrong?
I've tried with and without equals, a hyphen, quotation marks. No matter what I try, it won't see it.
#Solution:
Find:
volumes:
- pgdata:/var/lib/postgresql/data
Replace:
volumes:
- /opt/postgres/data:/var/lib/postgresql/data
More info: https://lazysoci.al/comment/8597610
If there is already an initialized database, the environment variables will be ignored.
What you have looks correct; the
POSTGRES_USER
variable only needs to be set if you want it to be something other thanpostgres
.Note: If you use dashes, I believe it's
KEY=Value
and if you don't use dashes, it'sKEY: value
Try giving it a clean data volume and re-running to see if it picks it up.
Thanks, I'll give this a go during breakfast. I've been pulling out my hair and this seems the most likely solution I didn't think of.
Thank you so much, your comment set me in the right direction. Turns out the tutorial I followed which had the data volume empty was the culprit*. So when I actually mapped it to something, it started working.