如何连接 puckel/docker-airflow 到本地 windows SQL 服务器?

How to connect puckel/docker-airflow to local windows SQL Server?

所以,我正在尝试从 airflow dag 连接到 windows 上 SQL 服务器的本地实例。

主要错误是即使在 docker 文件中明确提及后,pyodbc 或 pymmssql 库仍未安装。我已按照 Microsoft ODBC Driver for SQL Server under Debian 9 and Medium 的说明进行操作,因为图像是基于它构建的。

dag 运行 中的所有任务都很好,除了我尝试连接到 SQL 服务器但出现错误的任务:

[2020-04-03 22:23:42,303] {{taskinstance.py:1128}} ERROR - No module named 'pyodbc'

如果我尝试从气流容器中进行 pip 安装,它不会安装在 /usr/lib/python3.7/site-packages 中并且无法导入到 dag 中。

我也把 requirements.txt 收进了书里,但是没有成功。

有没有人在这种情况下连接成功?

我能够通过从 Dockerfile 构建气流图像来解决这个问题。在构建时你需要添加一些依赖项。

sqlalchemy:

&& pip3 uninstall SQLAlchemy \
&& pip3 install SQLAlchemy==1.3.15 \

pyodbc:

&& apt-get install python3-dev -y\
&& apt-get install unixodbc-dev -y\
&& pip3 install pyodbc \

另一个漫长的方法是将 USER 更改为 root 并从容器构建映像和 ap-get 安装,然后将 USER 更改回 airflow,但如果您知道要安装什么,这会更有效。