web-dev-qa-db-fra.com

Installer le pilote ODBC dans Alpine Linux Docker Container

J'ai actuellement le Dockerfile suivant pour créer mon image Docker.

FROM python:3.6.6-Alpine3.8

# Add dependencies for Python packages pandas, numpy and pyodbc
RUN apk add --no-cache curl gcc g++ unixodbc-dev
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h

# Project files
ARG PROJECT_DIR=/srv/scripts
RUN mkdir -p $PROJECT_DIR
WORKDIR $PROJECT_DIR
COPY requirements.txt ./

# Install Python dependencies
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

Je voudrais inclure divers pilotes ODBC dans cette image afin de pouvoir les utiliser pour me connecter à différentes bases de données du programme Python exécuté dans mon conteneur).

  • Le programme Python utilise Pyodbc pour se connecter aux bases de données.
  • Les pilotes ODBC que je dois installer sont:
    • PostgreSQL
    • MySQL
    • Ms SQL Server
    • Teradata
    • Oracle
    • Ruche
    • Impala

Je voulais commencer par PostgreSQL en pensant que ce serait le plus simple mais je n'ai trouvé aucun paquet sur le Alpine Linux Package manager . Avez-vous une idée de comment installer un tel pilote?

6
Alexis.Rolland

J'étais confronté au même problème. J'ai résolu ce problème en ajoutant RUN apk update avant RUN apk add commandes. (J'utilisais python: 3.6-Alpine)

Dockerfile

FROM python:3.6-Alpine
RUN apk update
RUN apk add gcc libc-dev g++ libffi-dev libxml2 unixodbc-dev mariadb-dev postgresql-dev
9
Shubham Patel