Pour utiliser PostgreSql dans python je dois
pip install psycopg2
Cependant, il dépend de libpq-dev et python-dev. Je me demande comment puis-je installer les dépendances en alpin? Merci.
Voici un Dockerfile:
FROM python:2.7-Alpine
RUN apk add python-dev libpq-dev
RUN pip install psycopg2
et la sortie est:
Étape 3: RUN apk add python-dev libpq-dev ---> Exécution dans 3223b1bf7cde AVERTISSEMENT: Ignorer APKINDEX.167438ca.tar.gz: Aucun fichier ou répertoire de ce type AVERTISSEMENT: Ignorer APKINDEX.a2e6dac0.tar.gz: Aucun fichier ou répertoire ERREUR: contraintes non satisfaisantes: libpq-dev (manquant): requis par: world [libpq-dev] python-dev (manquant): requis par: world [python-dev] ERREUR: Le service 'service' n'a pas pu être construit: La commande '/ bin/sh -c apk add python-dev libpq-dev' a renvoyé un code non nul: 2
Si vous avez seulement besoin d'installer psycopg2 pour python 2.7 sur l'image Docker basée sur python: 2.7-Alpine alors le code suivant pour Dockerfile sera bien pour vous:
FROM python:2.7-Alpine
RUN apk update && \
apk add --virtual build-deps gcc python-dev musl-dev && \
apk add postgresql-dev
RUN pip install psycopg2
Une explication avant de compiler/installer psycopg2
libpq
est la bibliothèque cliente pour PostgreSQL https://www.postgresql.org/docs/9.5/libpq.html
postgresql-dev
sont le paquet avec les en-têtes pour lier libpq dans une bibliothèque/binaire comme psycopg.
J'utilise la configuration suivante dans Alpine 3.7, j'ajoute quelques commentaires pour l'expliquer.
# Installing client libraries and any other package you need
RUN apk update && apk add libpq
# Installing build dependencies
# For python3 you need to add python3-dev *please upvote the comment
# of @its30 below if you use this*
RUN apk add --virtual .build-deps gcc python-dev musl-dev postgresql-dev
# Installing and build python module
RUN pip install psycopg2
# Delete build dependencies
RUN apk del .build-deps
Je n'ai pas pu l'installer à partir de python:2.7.13-Alpine
. A fini avec ceci:
FROM gliderlabs/Alpine:3.3
RUN apk add --no-cache --update \
python \
python-dev \
py-pip \
build-base
RUN apk add --virtual build-deps gcc python-dev musl-dev && \
apk add --no-cache --update postgresql-dev && \
pip install psycopg2==2.7.1
On dirait que le paquet dont vous avez besoin est libpq et non lobpq-dev:
https://pkgs.alpinelinux.org/package/Edge/main/x86/py2-psycopg2
Jetez un œil aux dépendances à droite
ajoutez-le dans dockerfile
RUN apk update && apk add --no-cache --virtual .build-deps\
postgresql-dev gcc libpq python3-dev musl-dev linux-headers\
&& pip install --no-cache-dir -r requirements.txt\
&& apk del .build-deps\
&& rm -rf /var/cache/apk/*