sql >> Databasteknik >  >> RDS >> PostgreSQL

Fel:pg_config körbar fil hittades inte vid installation av psycopg2 på Alpine i Docker

Testad med Python 3.4.8, 3.5.5, 3.6.5 och 2.7.14 (ersätt bara 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"]

Förklaring:för att bygga Psycopg behöver du paketen gcc musl-dev postgresql-dev . Då behöver du också den körbara pg_config:medan du helt enkelt installerar postgresql-dev kommer att fungera, postgresql-libs fungerar också bra och tar upp cirka 12 MB mindre utrymme.

Här är den ursprungliga versionen av svaret (baserat på den här Dockerfilen) där jag manuellt installerar Python på en ren Alpine-bild eftersom Python vid den tiden inte försåg Docker-bilden med Python 3.6 och Alpine 3.7. Om du vill installera Python 2.7 så, gör också apk add py2-pip (kallas py-pip i äldre alpina 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. Följ med mig på PAUG Database Designer Conference

  2. Hur man uppnår PCI-kompatibilitet för MySQL &MariaDB med ClusterControl - The Replay

  3. SQLServer IDENTITY Kolumn med text

  4. percentiler från histogramdata