sql >> Database teknologi >  >> RDS >> PostgreSQL

Fejl:pg_config eksekverbar fil blev ikke fundet ved installation af psycopg2 på Alpine i Docker

Testet med Python 3.4.8, 3.5.5, 3.6.5 og 2.7.14 (erstat bare 3 med 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"]

Forklaring:for at bygge Psycopg skal du bruge pakkerne gcc musl-dev postgresql-dev . Så har du også brug for den eksekverbare pg_config:mens du blot installerer postgresql-dev vil virke, postgresql-libs fungerer også fint og fylder omkring 12 MB mindre.

Her er den originale version af svaret (baseret på denne Dockerfile), hvor jeg manuelt installerede Python på et rent Alpine-billede, fordi Python på det tidspunkt ikke leverede Docker-billedet med Python 3.6 og Alpine 3.7. Hvis du vil installere Python 2.7 sådan, skal du også apk add py2-pip (kaldet py-pip i ældre alpine 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"]


  1. Simpel Oracle-forespørgsel:literal svarer ikke til formatstreng

  2. Sådan udfyldes manglende datoer i PostgreSQL ved hjælp af generate_series

  3. Masseindsættelse med tekstkvalifikation i SQL Server

  4. MS Access:Fordele og ulemper