Problem był na tyle prosty, że na moim komputerze działała już instancja Postgresa, o której nie wiedziałem, że nadal działa (nie w Dockerze) na :5432
, sprawdzone z:
$ lsof -n -i:5432 | grep LISTEN
Więc przypomniałem sobie, że zainstalowałem go przez https://gist.github.com/sgnl/609557ebacd3378f3b72 , biegłem
$ pg-stop
I wtedy nie miałem problemu z połączeniem się z instancją Dockera.
Edytuj (2019/07/02)
To pytanie ostatnio przeszło 10 000 wyświetleń, więc pomyślałem, że powinienem dokładniej wyjaśnić, dlaczego tak się stało.
Zwykle uruchamianie przez docker, używanie Pythona i łączenie się z bazą danych Postgres wymaga zainstalowania psycopg2
, za pomocą pip3 install psycopg2
, ale jeśli uruchomisz to polecenie, otrzymasz:
Error: pg_config executable not found.
Dzieje się tak, ponieważ psycopg2 wymaga instalacji systemu operacyjnego bibliotek postgres:
yum install postgresql-devel
apt-get install postgresql-client
Teraz na Macu musisz zrobić to samo z naparem:
brew install postgresql
Jedną z rzeczy, z których nie zdawałem sobie sprawy, jest to, że na Macu wykonanie powyższego nie tylko zainstaluje wymagane biblioteki, ale również uruchom bazę danych na :5432
. Ponieważ wszystko to odbywało się w tle, nie przyszło mi do głowy, że jest to problem, ponieważ nie pojawił się żaden ze zwykłych błędów informujących, że port jest używany itp.