I am using Airflow through Docker-compose. The same docker-compose.yml has an image of Postgres as well. The config looks like below –
postgres:
image: postgres:13
ports:
- 5432:5432
environment:
POSTGRES_USER: airflow
POSTGRES_PASSWORD: airflow
POSTGRES_DB: airflow
volumes:
- postgres-db-volume:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "airflow"]
interval: 5s
retries: 5
restart: always
This works fine for Airflow and I am also able to access the DAG on the UI.
But I want to access the dockerized Postgres instance from an outside SQL client application like Dbeaver. But I am not able to do that.
Can someone please help me to resolve this?
Note: I already have a separate Postgres instance running on my local.
2
Answers
After trying several times, as @Jashwant mentioned, this port(
5432
) was occupied. Note that it is possible that this port not be shown inlsof -i -P
command.So I used another port and instead of
5432:5432
, I used6543:5432
and it solved the problem.You should put ‘localhost’ instead of ‘172.25.0.2’ and ensure there is no port ‘5432’ already used in your system by using
lsof -i:5432 | grep 'LISTEN'
.I prefer to use another port. see screenshot below