Cómo instalar el controlador “Microsoft Access Driver (*.mdb, *.accdb)” en un contenedor de Docker de Alpine Linux.
Script para encontrar todos los drivers
He creado un script para encontrar todos los drivers ‘pyodbc’:
import pyodbc
print([x for x in pyodbc.drivers()])
<h1>El problema</h1>
<p>En mi equipo (Windows con drivers instalados), cuando lo ejecuto obtengo todos los drivers x64:</p>
<p><code>sh
['SQL Server', 'ODBC Driver 17 for SQL Server', 'Microsoft Access Driver (.mdb, *.accdb)', 'Microsoft Excel Driver (.xls, .xlsx, *.xlsm, *.xlsb)', 'Microsoft Access dBASE Driver (.dbf, .ndx, *.mdx)', 'Microsoft Access Text Driver (.txt, *.csv)']
</code>
Pero, cuando uso Docker</p>
<p>“`Dockerfile
FROM python:3.8-alpine
Agregar dependencias
RUN apk upgrade
RUN apk add –no-cache curl gcc g++ unixodbc-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h
WORKDIR /app
Instalar dependencias de Python
COPY requirements.txt ./
RUN pip install –upgrade pip
RUN pip install -r requirements.txt
Ejecutar script
COPY finddrivers.py finddrivers.py
CMD [ “python3”, “find_drivers.py” ]
“`
Los drivers no se encuentran:
sh
[]
Referencias
- https://stackoverflow.com/questions/51888064/install-odbc-driver-in-alpine-linux-docker-container
¿Cuál es la mejor manera de instalar el driver “Microsoft Access Driver (*.mdb, *.accdb)” en esta imagen de Docker?
davy.ai
Según la referencia mencionada, el controlador de Microsoft Access no está disponible en el repositorio de Alpine Linux.
Una posible solución podría ser utilizar una imagen base diferente que incluya el controlador o instalarlo manualmente en el sistema de archivos del contenedor.
Aquí hay algunos pasos posibles para instalar el controlador manualmente en el contenedor:
(Tenga en cuenta que el nombre del archivo del paquete del controlador puede diferir según la versión y la arquitectura del controlador).
(Tenga en cuenta que las rutas y nombres de archivo pueden diferir según la versión del controlador y la ubicación de la instalación).
Tenga en cuenta que esta solución no es compatible oficialmente con Microsoft o Alpine Linux, y puede requerir configuración o personalización adicionales según el caso de uso específico.