web-dev-qa-db-ja.com

Dockerでのpython:2.7-Alpineのpsycopg2インストール

pythonでPostgreSqlを使用するには

pip install psycopg2   

ただし、libpq-devおよびpython-devに依存しています。アルペンに依存関係をどのようにインストールできますか?ありがとう。

Dockerfileは次のとおりです。

FROM python:2.7-Alpine

RUN apk add python-dev libpq-dev
RUN pip install psycopg2

出力は次のとおりです。

ステップ3:apk add python-dev libpq-devを実行しますディレクトリエラー:満たされない制約:libpq-dev(欠落):必須:world [libpq-dev] python-dev(欠落):必須:world [python-dev]エラー:サービス 'service'の構築に失敗しました:コマンド「/ bin/sh -c apk add python-dev libpq-dev」がゼロ以外のコードを返しました:2

16
salehinejad

python:2.7-Alpine に基づくDockerイメージでpython 2.7にpsycopg2をインストールする必要がある場合Dockerfileがあなたにとっていいでしょう:

FROM python:2.7-Alpine

RUN apk update && \
    apk add --virtual build-deps gcc python-dev musl-dev && \
    apk add postgresql-dev

RUN pip install psycopg2
21
Sant

Psycopg2をコンパイル/インストールする前の説明

libpqはPostgreSQLのクライアントライブラリです https://www.postgresql.org/docs/9.5/libpq.html

postgresql-devは、psycopgと同様に、ライブラリ/バイナリ内のlibpqをリンクするヘッダーを持つパッケージです。

私はAlpine 3.7で次の構成を使用します。それを説明するコメントを追加します。

# Installing client libraries and any other package you need
RUN apk update && apk add libpq

# Installing build dependencies
# For python3 you need to add python3-dev *please upvote the comment
# of @its30 below if you use this*
RUN apk add --virtual .build-deps gcc python-dev musl-dev postgresql-dev

# Installing and build python module
RUN pip install psycopg2

# Delete build dependencies
RUN apk del .build-deps
8
Felipe Buccioni

python:2.7.13-Alpineからインストールすることができませんでした。これで終わった:

FROM gliderlabs/Alpine:3.3

RUN apk add --no-cache --update \
    python \
    python-dev \
    py-pip \
    build-base

RUN apk add --virtual build-deps gcc python-dev musl-dev && \
    apk add --no-cache --update postgresql-dev && \
    pip install psycopg2==2.7.1
5
pbatey

必要なパッケージはlobpq-devではなくlibpqのようです:

https://pkgs.alpinelinux.org/package/Edge/main/x86/py2-psycopg2

右側の依存関係をご覧ください

dockerfileに追加します

RUN apk update && apk add --no-cache --virtual .build-deps\
    postgresql-dev gcc libpq  python3-dev musl-dev linux-headers\ 
    && pip install --no-cache-dir -r requirements.txt\
    && apk del .build-deps\
    && rm -rf /var/cache/apk/*
0