试图让在docker文件中运行的google cloud上运行的python脚本 pyodbc驱虫错误

问题描述

我正在尝试运行使用pyodbc连接到mssql服务器数据库的python脚本。尝试使用docker文件使一切正常工作。

尝试了所有内容并阅读了所有stackoverflow问题之后,将其部署到Google Cloud Run时仍然出现错误

pyodbc.Error: ('01000',"[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/freetds/lib/libtdsodbc.so' : file not found (0) (sqlDriverConnect)")

所以我想像是找不到驱动程序文件。根据{{​​3}} stackoverflow的帖子,它回答说它可能必须对该路径做些事情。我尝试了建议的不同路径,但是一次又一次遇到相同的错误

这是我完整的docker文件

# parent image
FROM python:3.7-slim

ADD app.py /
ADD odbcinst.ini /etc/odbcinst.ini

# install FreeTDS and dependencies
RUN apt-get update \
 && apt-get install unixodbc -y \
 && apt-get install unixodbc-dev -y \
 && apt-get install freetds-dev -y \
 && apt-get install freetds-bin -y \
 && apt-get install tdsodbc -y \
 && apt-get install --reinstall build-essential -y

RUN ls -l /usr/lib/x86_64-linux-gnu/odbc/

# install pyodbc (and,optionally,sqlalchemy)
RUN pip install --trusted-host pypi.python.org pyodbc==4.0.26
RUN pip install ftputil
RUN pip install pandas
RUN pip install datetime
RUN pip install Flask gunicorn

CMD [ "python","./app.py" ]

我的odbcinst.ini看起来像这样:

[FreeTDS]
Description=FreeTDS Driver 
Driver=/usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so 
Setup=/usr/lib/x86_64-linux-gnu/odbc/libtdsS.so

我试图通过Google Cloud Shell搜索文件,但是这根本不起作用,我不确定这是找到正确路径的正确方法吗?有人知道我在做什么错吗?这是我第一次使用docker和google cloud run。

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)