Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在docker文件中运行google cloud上运行的python脚本。Pyodbc驱动器错误_Python_Docker_Pyodbc_Google Cloud Run - Fatal编程技术网

试图在docker文件中运行google cloud上运行的python脚本。Pyodbc驱动器错误

试图在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

我正在尝试运行一个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' : 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”文件。