Я использую образ докера воздушного потока puckel для запуска приложения воздушного потока, которое собирается извлечь данные из базы данных Oracle и передать их в другую базу данных. Я предоставил переменные окружения для соединения с базой данных в docker-composeCeleryExecutor , которые выглядят так:
AIRFLOW_CONN_ORACLE_FLXP=oracle://oracle_user:XXXXXXXXXXXX@1.1.1.1:1521?encoding=UTF-8&nencoding=UTF-8&threaded=False&events=False&mode=sysdba&purity=new
Я хочу выполнить запрос в базе данных oracle в задаче DAG с использованием OracleOperator, например:
t1 = OracleOperator(
task_id='run_query',
sql=query,
oracle_conn_id='oracle_flxp',
dag=dag)
Однако задача не выполняется со следующей ошибкой:
{{models.py:1788}} ERROR - DPI-1047: Cannot locate a 64-bit Oracle Client library: "libclntsh.so: cannot open shared object file: No such file or directory".
Я подумал, что мне, возможно, понадобится установить мгновенный клиент oracle в мой контейнер воздушного потока или в отдельный контейнер. Я уже пытался создать этот образ клиента мгновенного оракула и добавил его в docker-composeCeleryExecutor следующим образом:
oracle:
image: oracle/instantclient:12.2.0.1
command: sqlplus -v
webserver:
depends_on:
- oracle
...
Но ошибка все та же. Кроме того, когда я запускаю docker-compose, контейнер oracle инициализируется, но после повторного выхода снова выводит строку:
docker-airflow_oracle_1 exited with code 0
Я действительно ожидал, что поток воздуха уже будет настроен для подключения к базам данных оракула. Может ли кто-нибудь помочь мне здесь?