PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Fehler:Die ausführbare Datei pg_config wurde bei der Installation von psycopg2 auf Alpine in Docker nicht gefunden

Getestet mit Python 3.4.8, 3.5.5, 3.6.5 und 2.7.14 (ersetzen Sie einfach 3 durch 2):

# You can use a specific version too, like python:3.6.5-alpine3.7
FROM python:3-alpine

WORKDIR /usr/src/app

COPY requirements.txt .

RUN \
 apk add --no-cache postgresql-libs && \
 apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev && \
 python3 -m pip install -r requirements.txt --no-cache-dir && \
 apk --purge del .build-deps

COPY . .

CMD ["python3", "app.py"]

Erläuterung:Um Psycopg zu bauen, benötigen Sie die Pakete gcc musl-dev postgresql-dev . Dann brauchen Sie auch diese ausführbare pg_config-Datei:während Sie einfach postgresql-dev installieren funktionieren, postgresql-libs funktioniert auch gut und nimmt etwa 12 MB weniger Speicherplatz ein.

Hier ist die Originalversion der Antwort (basierend auf dieser Docker-Datei), in der ich Python manuell auf einem reinen Alpine-Image installiere, da Python zu diesem Zeitpunkt das Docker-Image nicht mit Python 3.6 und Alpine 3.7 bereitgestellt hat. Wenn Sie Python 2.7 so installieren möchten, führen Sie auch apk add py2-pip aus (genannt py-pip in älteren alpinen Repos).

FROM alpine:3.7

WORKDIR /usr/src/app

COPY requirements.txt .

RUN \
 apk add --no-cache python3 postgresql-libs && \
 apk add --no-cache --virtual .build-deps gcc python3-dev musl-dev postgresql-dev && \
 python3 -m pip install -r requirements.txt --no-cache-dir && \
 apk --purge del .build-deps

COPY . .

CMD ["python3", "app.py"]