ARM设备构建含Microsoft ODBC 18的Python Docker镜像失败求助
构建依赖Microsoft ODBC Driver 18的Django Docker镜像失败问题
我正在为依赖Microsoft ODBC Driver 18的Python(Django)应用构建Docker镜像,运行环境是ARM架构的树莓派5(8GB内存,搭载树莓派OS)。根据相关信息,ODBC Driver 18支持ARM架构,17版本不支持。
原Dockerfile内容:
FROM python:latest RUN apt update RUN apt-get install -y gcc libc-dev g++ libffi-dev libxml2 unixodbc-dev unixodbc RUN curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc \ && curl https://packages.microsoft.com/config/debian/12/prod.list | tee /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \ && echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc RUN odbcinst -j WORKDIR /app COPY django-requirements.txt /app/ RUN pip install --no-cache-dir -r django-requirements.txt COPY . /app/ CMD ["bash"]
(注:部分命令参考微软官方文档)
构建时出现错误,日志提示Microsoft软件源签名无法验证,公钥EB3E94ADBE1229CF不可用。我尝试了两种方案仍未解决:
尝试方案1
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \ && mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \ && curl https://packages.microsoft.com/config/debian/12/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \ && echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
执行后返回几乎相同的错误日志。
尝试方案2
RUN curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg \ && mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg \ && curl https://packages.microsoft.com/config/debian/12/prod.list > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update --allow-insecure-repositories \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB3E94ADBE1229CF \ && ACCEPT_EULA=Y apt-get install -y msodbcsql18 \ && echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
执行后错误日志显示msodbcsql18包无法认证,构建仍失败。
寻求有效解决该Docker镜像构建失败问题的方法。
内容的提问来源于stack exchange,提问作者WQYeo
相关产品推荐
相关产品推荐

