如何解决试图让在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 举报,一经查实,本站将立刻删除。