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"]
关键修改说明
- 适配Debian 10系统:添加微软官方的Debian 10软件源,而非Ubuntu源,确保能正确获取ODBC驱动安装包
- 完整驱动安装流程:
- 安装必要依赖(
curl、gnupg2用于添加源和密钥) - 添加微软GPG密钥验证软件包合法性
- 导入Debian 10对应的SQL Server源列表
- 接受许可协议并安装
msodbcsql18(ODBC Driver 18)
- 安装必要依赖(
- 清理镜像体积:安装完成后清理APT缓存,避免镜像过大
内容的提问来源于stack exchange,提问作者Lukasz
相关产品推荐
相关产品推荐

