sql >> Databáze >  >> RDS >> PostgreSQL

Chyba:Při instalaci psycopg2 na Alpine v Dockeru nebyl nalezen spustitelný soubor pg_config

Testováno s Pythonem 3.4.8, 3.5.5, 3.6.5 a 2.7.14 (stačí nahradit 3 za 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"]

Vysvětlení:k sestavení Psycopg potřebujete balíčky gcc musl-dev postgresql-dev . Pak také potřebujete spustitelný soubor pg_config:při jednoduché instalaci postgresql-dev bude fungovat, postgresql-libs funguje také dobře a zabírá o 12 MB méně místa.

Zde je původní verze odpovědi (založená na tomto souboru Dockerfile), kde ručně nainstaluji Python na čistý obraz Alpine, protože v té době Python neposkytoval obraz Docker s Pythonem 3.6 a Alpine 3.7. Pokud chcete nainstalovat Python 2.7 takto, proveďte také apk add py2-pip (tzv. py-pip ve starších repozitářích Alpine).

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. Výukový program Oracle SQL:Základní příkaz SQL

  2. Jak znovu vytvořit nekonzistentní PostgreSQL Slave

  3. Jak zabránit automatickému vypnutí SQL Server LocalDB?

  4. Jak se vyhnout zablokování SQL pomocí ladění dotazů:Rada od Brenta Ozara