试图在docker文件中运行google cloud上运行的python脚本。Pyodbc驱动器错误
我正在尝试运行一个python脚本,该脚本使用试图在docker文件中运行google cloud上运行的python脚本。Pyodbc驱动器错误,python,docker,pyodbc,google-cloud-run,Python,Docker,Pyodbc,Google Cloud Run,我正在尝试运行一个python脚本,该脚本使用pyodbc连接到mssql服务器数据库。试图使用docker文件使一切正常工作 在尝试了所有方法并阅读了所有stackoverflow问题之后,我在部署到Google Cloud Run时仍然会遇到一个错误 pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/freetds/lib/libtdsodbc.so' : fi
pyodbc
连接到mssql服务器数据库。试图使用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)")
因此,我想找不到的是驱动程序文件。根据stackoverflow post的说法,它回答说,它可能需要对这条路径做些什么。我尝试了建议的不同路径,但一次又一次地出现相同的错误
这是我的完整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
谢谢运行
odbcinst-j
并验证unixODBC是否正在您认为的目录中查找“odbcinst.ini”文件。