【发布时间】:2018-02-19 02:02:59
【问题描述】:
我很难让我的 docker 容器访问 MS SQL 服务器。我曾尝试在此处遵循this 指南,但无济于事。
这是我的基础 Dockerfile:
FROM python:3
ADD ./odbcinst.ini /etc/odbcinst.ini
RUN apt-get update && apt-get install gcc
RUN apt-get install -y tdsodbc unixodbc-dev
RUN apt-get install unixodbc-bin -y
RUN apt-get clean -y
RUN apt-get update && apt-get install -y gcc unixodbc-dev mssql-python-pyodbc
RUN pip install pyodbc
RUN pip install plaster_pastedeploy pyramid pyramid_jinja2 pyramid_debugtoolbar waitress yagmail pyodbc
这是扩展它的另一个 docker 文件:
FROM pyodbc
COPY . .
RUN pip install -e companalysis/
CMD [ "pserve", "companalysis/development.ini" ]
EXPOSE 8081
这是我的 sql 连接字符串:
strconn = 'DRIVER=
{FreeTDS};SERVER=192.168.0.6;
DATABASE=xxxx;UID=xxxx;PWD=xxx'
无论我做什么我都会得到这个错误:
Error: ('01000', u"[01000] [unixODBC][Driver Manager]Can't open lib 'FreeTDS' : file not found (0) (SQLDriverConnect)")
我希望在这方面提供一些帮助。 编辑:我已经在我的 dockerfile 中安装了它:
我已经在我的 dockerfile 中正确安装了驱动程序:
RUN echo "[FreeTDS]\n\
Description = FreeTDS unixODBC Driver\n\
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so\n\
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so" >> /etc/odbcinst.ini
RUN export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1
RUN apt-get update && apt-get install -y unixodbc unixodbc-dev freetds-dev freetds-bin tdsodbc
【问题讨论】:
-
你在 docker 之外试过这个吗?查看此错误详细说明的帖子:stackoverflow.com/questions/33158503/…
-
在成功(我认为)安装 FreeTDS 之后,我的 docker 容器现在抛出了一个新错误。这是错误:
pyodbc.OperationalError: ('08001', '[08001] [unixODBC][FreeTDS][SQL Server]Unable to connect to data source (0) (SQLDriverConnect)')
标签: sql-server python-3.x docker pyodbc