добавьте подключение воздушного потока к базе данных локального хоста (postgres, работающая в docker)

#postgresql #docker #airflow

Вопрос:

У меня локально работает докеризованный postgres, к которому я могу подключиться через pgAdmin4 и через psql .

Используя те же сведения о подключении, я настроил подключение воздушного потока в пользовательском интерфейсе

введите описание изображения здесь

Однако при попытке загрузить DAG, использующий это соединение, возникает ошибка:

Сломанные Даг: [/usr/local/airflow/dags/s3upload.py] обратная трассировка (самый недавний призыв последнего): файл «/usr/local/lib/python3.7/site-packages/airflow/providers/postgres/hooks/postgres.py», строка 113, в get_conn самостоятельно.компания conn = psycopg2.подключение(**conn_args) файл «/usr/местные/библиотека/питон3.7/сайт-пакеты/psycopg2/инит.ру», строка 127, в соединить соед = _connect(имя DSN, connection_factory=connection_factory, **kwasync) psycopg2.Ошибка операции: не удалось подключиться к серверу: Отказано в подключении Сервер работает на хосте «127.0.0.1» и принимает соединения TCP/IP на порту 54320?

Как уже упоминалось, экземпляр postgres запущен, и переадресация портов активна, что подтверждается успешными pgAdmin и psql входами в систему.

Есть какие-нибудь идеи?

Комментарии:

1. работает ли воздушный поток в другом контейнере docker ?

2. так и есть! не подумал об этом… Знаете ли вы, как правильно определить хост в этом случае?

3. да, только что ответил

Ответ №1:

используйте host.docker.internal , который будет указывать на ваш локальный хост, а не на локальный хост контейнера, он будет работать, если порт pg сопоставлен с вашим портом 5432.