You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker镜像中无法加载ODBC Driver 18 for SQL Server的问题求助

解决Docker镜像中ODBC Driver 18 for SQL Server找不到的问题

你的Docker镜像基于python:3.8-slim-buster(Debian 10系统),运行时出现的错误是因为系统中缺少ODBC Driver 18 for SQL Server,且你之前尝试的Ubuntu 18.04安装步骤不适用于Debian系统。

修改后的完整Dockerfile

# Use an official Python runtime as a base image
FROM python:3.8-slim-buster
USER root

# Upgrade pip and install dependencies + ODBC Driver 18 for SQL Server
RUN pip install --upgrade pip \
    && apt-get update && apt-get install -y --no-install-recommends \
        curl \
        gnupg2 \
        unixodbc-dev \
    && 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 \
    && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Set the working directory
WORKDIR /
COPY requirements/core.txt .

# Install the application's Python packages
ARG PIP_EXTRA_INDEX_URL_GAR
RUN pip install --extra-index-url "${PIP_EXTRA_INDEX_URL_GAR}" -r core.txt

# Set environment and timezone
# ENV GOOGLE_APPLICATION_CREDENTIALS="/app/config/adc.json"
ENV TZ=America/Toronto
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY . .
# Entrypoint to run the app
ENTRYPOINT ["python"]
CMD ["Tableau_export.py"]

关键修改说明

  1. 适配Debian 10系统:添加微软官方的Debian 10软件源,而非Ubuntu源,确保能正确获取ODBC驱动安装包
  2. 完整驱动安装流程:
    • 安装必要依赖(curl、gnupg2用于添加源和密钥)
    • 添加微软GPG密钥验证软件包合法性
    • 导入Debian 10对应的SQL Server源列表
    • 接受许可协议并安装msodbcsql18(ODBC Driver 18)
  3. 清理镜像体积:安装完成后清理APT缓存,避免镜像过大

内容的提问来源于stack exchange,提问作者Lukasz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 23:58:18