【问题标题】:Issue with connecting to pyodbc in Docker Container在 Docker 容器中连接到 pyodbc 的问题
【发布时间】:2022-06-13 23:23:26
【问题描述】:

早安,

我的 Docker 容器和 pyodbc / unixodbc-dev 出现以下问题。

运行我的 Python API 连接到我的 Docker 容器时,我收到以下错误消息--

(pyodbc.Error) ('01000', "[01000] [unixODBC][Driver
Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)"

使用我的本地调试实例连接到同一个 API 一切正常——我可以提交一个字符串以在后端数据库中进行搜索,然后我得到返回的结果并发送回 Postman UI。

我看到 Docker 映像中安装了 unixodbc-dev dev 2.3.6-0.1 amd64,我注意到 unixODBC 是 2.3.11 - 不知道这是否有任何问题,但据说我们的 Moonshot实例无法连接到http://deb.debian.org,让我们的安全组打开它几乎是不可能的。

说了这么多,我想知道是不是我的 Docker 容器中的某些配置错误导致了我的问题。我是 Docker 容器世界的新手,所以这绝对是我在学习的过程。

TIA, 比尔·扬曼

【问题讨论】:

  • 附加信息 -- 用于连接的连接字符串是 mssql+pyodbc://admin:validusdev@validus-rds-xe1-dev-name-matching.cf2xhi0isp7k.us-east- 1.rds.amazonaws.com:1433/NameMatching?driver=ODBC+Driver+17+for+SQL+Server

标签: python docker unixodbc


【解决方案1】:

我能够解决这个问题 - 感谢 m.b. 提供我正在寻找的解决方案。

我能够从 Install ODBC driver in Alpine Linux Docker Container 中获取 Debian 建议并根据我的需要对其进行修改。

这是我用来满足我下载 unixOdbc 以及下载和安装 MS Sql ODBC 驱动程序要求的代码。

FROM python:3.8.3

ARG ENV DEBIAN_FRONTEND noninteractive

# install Microsoft SQL Server requirements.
ENV ACCEPT_EULA=Y
RUN apt-get update -y && apt-get update \
  && apt-get install -y --no-install-recommends curl gcc g++ gnupg unixodbc-dev

# Add SQL Server ODBC Driver 17 for Ubuntu 18.04
RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - \
  && curl https://packages.microsoft.com/config/debian/10/prod.list > /etc/apt/sources.list.d/mssql-release.list \
  && apt-get update \
  && apt-get install -y --no-install-recommends --allow-unauthenticated msodbcsql17 mssql-tools \
  && echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile \
  && echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc

# clean the install.
RUN apt-get -y clean

一旦完成,我构建并部署了我的容器,一切都运行良好。

-比尔

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 1970-01-01
    • 2019-03-28
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多