Yeah the name you want for the database host is postgres, or whatever the container is named in the docker-compose.yml.
I was curious about this, and it turns out both work. I tested by pinging both postgres
and lemmy_postgres_1
, and both responded with the same IP address. Good to know, but I did go ahead and change it back to postgres
Maybe try a very simple password temporarily like test, rebuild the postgres container/delete the volumes and see if it works.
I did this, and I'm still getting the same error, so obviously something is wrong.
I learned something interesting in doing some more testing...
Using the
-W
option does indeed prompt for a password, but it accepts any value entered at the password prompt. In order to actually authenticate with a password when usingpsql
, you must modify thepg_hba.conf
file to usescram-sha-256
as the method for typelocal
.When I do this, I am unable to authenticate (both while using my actual password, and also while using a password of "test".
And then I figured out the problem.
In my
docker-compose.yml
, I had put single quotes around my postgres password, thinking this would be safe per my understanding of this question. However, just to check, I tried logging in topsql
using the password'test'
. Sure enough, it worked.I found another stack exchange with some different advice on strings in yaml: https://stackoverflow.com/questions/53082932/yaml-docker-compose-spaces-quotes
So, I tried my password again, without the single quotes... and it worked.
Perhaps this will help somebody beating their head against the wall in the future.