2 votes

Échec de l'installation de msodbcsql17

J'essaie de mettre à jour une image docker qui utilise python:3.9 comme base (qui utilise Debian GNU/Linux 10 (buster)), mais cela échoue maintenant avec des étapes qui auparavant ne posaient aucun problème. La nouvelle image sha est @sha256:8f642902ba368481c9aca0a100f08daf93793c6fa14d3002253ea3cd210383a7 et les commandes que j'utilise peuvent être trouvées ici. https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-ver15#debian17 .

C'est ici qu'apparaît l'erreur de sortie :

#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

Quelqu'un a-t-il une idée de la raison pour laquelle il a cessé de fonctionner avec la nouvelle version de l'image ?

1voto

Neo Points 107

Comme mentionné par @AlwaysLearning dans les commentaires, en effet la version debian a été mise à jour. J'ai résolu le problème en utilisant python:3.9-buster comme base

0voto

Aditya Kar Points 145

TL;DR : La construction bullseye, qui utilise Debian 11, est maintenant la construction par défaut pour les images de base de python 3. Vous pouvez soit passer à la construction '-buster', soit fixer le numéro de la version mineure à la version précédente.

J'ai rencontré le même problème hier et je l'ai résolu en revenant à la version précédente de l'image de base de python.

Dans votre Dockerfile, si vous utilisiez :

FROM python:3.9 puis le changer en FROM python:3.9.5

FROM python:3.8 puis le changer en FROM python:3.8.10

FROM python:3.7 puis le changer en FROM python:3.7.10

FROM python:3.6 puis le changer en FROM python:3.6.13

Cela ne résout pas la cause première et vous empêchera d'obtenir les corrections introduites dans les mises à jour mineures de l'image Docker de base.

Sinon, vous pourriez vous en tenir aux constructions de type buster, par exemple, python:3.9-buster .

La version bullseye a été publiée il y a 4 jours et est devenue la version par défaut pour toutes les images de python 3. Cela inclut une mise à jour de Debian 11 à partir de Debian 9 .

Cependant, pour les systèmes de production, je suggère de fixer le numéro de la version mineure à celui qui vous convient.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X