Neo*_*Neo 9 python sql-server debian docker
我正在尝试更新使用 python:3.9 作为基础的 docker 映像(使用 Debian GNU/Linux 10 (buster)),但现在失败了,之前的步骤没有出现任何问题。新的映像 sha 是@sha256:8f642902ba368481c9aca0a100f08daf93793c6fa14d3002253ea3cd210383a7,我使用的命令可以在这里找到https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver- for-sql-server?view=sql-server-ver15#debian17。
这里出现了输出错误:
#20 0.380 Reading package lists...
#20 0.838 Building dependency tree...
#20 0.942 Reading state information...
#20 0.998 Some packages could not be installed. This may mean that you have
#20 0.998 requested an impossible situation or if you are using the unstable
#20 0.998 distribution that some required packages have not yet been created
#20 0.998 or been moved out of Incoming.
#20 0.998 The following information may help to resolve the situation:
#20 0.998
#20 0.998 The following packages have unmet dependencies:
#20 1.049 libodbc1 : PreDepends: multiarch-support but it is not installable
#20 1.049 odbcinst1debian2 : PreDepends: multiarch-support but it is not installable
#20 1.062 E: Unable to correct problems, you have held broken packages.
------
executor failed running [/bin/sh -c ACCEPT_EULA=Y apt-get install -y msodbcsql17]: exit code: 100
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么它停止使用新图像版本?
Adi*_*Kar 13
TL;DR:使用 Debian 11 的 bullseye 构建现在是 python 3 基础镜像的默认构建。您可以切换到“-buster”版本或将次要版本号修复为前一个版本号。
我昨天遇到了同样的问题,并通过恢复到以前版本的 python 基础映像来修复它。
在您的 Dockerfile 中,如果您使用:
FROM python:3.9,然后将其更改为FROM python:3.9.5
FROM python:3.8,然后将其更改为FROM python:3.8.10
FROM python:3.7,然后将其更改为FROM python:3.7.10
FROM python:3.6,然后将其更改为FROM python:3.6.13
这并不能解决根本原因,并且会阻止您获得基础 Docker 映像的次要版本升级中引入的修复。
或者,您可以坚持使用破坏性版本,例如python:3.9-buster.
bullseye 版本于 4 天前发布,并成为所有 python 3 图像的默认版本。这包括从 Debian 9升级到Debian 11 。
但是,对于生产系统,我建议将次要版本号修复为适合您的版本号。