Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

959
Views
Instalación fallida de msodbcsql17

Estoy intentando actualizar una imagen docker que usa python:3.9 como base (que usa Debian GNU/Linux 10 (buster)), pero ahora falla con pasos que antes no daban problemas. La nueva imagen sha es @sha256:8f642902ba368481c9aca0a100f08daf93793c6fa14d3002253ea3cd210383a7 , y los comandos que uso se pueden encontrar aquí https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft- odbc-driver-for-sql-server?view=sql-server-ver15#debian17 .

Aquí viene el error de salida:

 #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

¿Alguien tiene una idea de por qué dejó de funcionar con el lanzamiento de la nueva imagen?

over 4 years ago · Santiago Trujillo
4 answers
Answer question

0

como menciona @AlwaysLearning en los comentarios, de hecho, se actualizó la versión de Debian. Resolví el problema usando python:3.9-buster como base

over 4 years ago · Santiago Trujillo Report

0

TL;DR: La compilación bullseye, que usa Debian 11, ahora es la predeterminada para las imágenes base de python 3. Puede cambiar a la compilación '-buster' o corregir el número de versión menor a la anterior.

Enfrenté el mismo problema ayer y lo solucioné volviendo a la versión anterior de la imagen base de python.

En su Dockerfile, si estaba usando:

FROM python:3.9 , luego cámbielo a FROM python:3.9.5

FROM python:3.8 , luego cámbielo a FROM python:3.8.10

FROM python:3.7 , luego cámbielo a FROM python:3.7.10

FROM python:3.6 , luego cámbielo a FROM python:3.6.13

Esto no soluciona la causa raíz y evitará que se introduzcan correcciones en las actualizaciones de versiones secundarias de la imagen base de Docker.

De manera alternativa, puede ceñirse a las compilaciones buster, por ejemplo, python:3.9-buster .

La compilación bullseye se lanzó hace 4 días y se convirtió en la predeterminada para todas las imágenes de Python 3. Esto incluyó una actualización a Debian 11 desde Debian 9 .

Sin embargo, para los sistemas de producción, sugeriría fijar el número de versión menor al que funcione para usted.

over 4 years ago · Santiago Trujillo Report

0

La causa principal es la incompatibilidad de los controladores MS DB con la versión de distribución de Debian utilizada por la imagen de Python 3.9 recientemente lanzada. Puede verificarlo mirando la configuración en su dockerfile, que registra el repositorio de MS. Será específico para versiones anteriores de Debian.

Si MS Driver es compatible con el nuevo Debian, puede encontrar una configuración actualizada en la documentación oficial de MS de su controlador db.

Si MS Driver no es compatible con el nuevo Debian, debe usar una variante de la imagen de Python que aún se base en la versión de Debian compatible y mantener la configuración del repositorio.

over 4 years ago · Santiago Trujillo Report

0

Para mí, la única solución fue cambiar la imagen base en Dockerfile de FROM python:3.6-buster a FROM --platform=linux/amd64 python:3.6-buster . El indicador --platform probablemente sea necesario para las personas que construyen la imagen en un chip M1 (apple).

Si prefiere no cambiar la especificación de la plataforma en Dockerfile, puede agregarla mientras crea la imagen como docker build --platform=linux/amd64 y eso también debería funcionar.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!