#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.