PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Erro:executável pg_config não encontrado ao instalar o psycopg2 no Alpine no Docker


Testado com Python 3.4.8, 3.5.5, 3.6.5 e 2.7.14 (apenas substitua 3 por 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"]

Explicação:para construir o Psycopg você precisa dos pacotes gcc musl-dev postgresql-dev . Então você também precisa do executável pg_config:enquanto simplesmente instala o postgresql-dev funcionará, postgresql-libs também funciona bem e ocupa menos 12 MB de espaço.

Aqui está a versão original da resposta (com base neste Dockerfile) onde instalo manualmente o Python em uma imagem Alpine pura porque naquela época o Python não fornecia a imagem do Docker com o Python 3.6 e o ​​Alpine 3.7. Se você quiser instalar o Python 2.7 assim, também faça apk add py2-pip (chamado py-pip em repositórios Alpine mais antigos).
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"]