Python 3.4.8、3.5.5、3.6.5、2.7.14でテスト済み(3を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"]
説明:Psycopgをビルドするには、パッケージgcc musl-dev postgresql-dev
が必要です。 。次に、そのpg_config実行可能ファイルも必要です。postgresql-dev
をインストールするだけです。 動作します、postgresql-libs
うまくいき、占有するスペースも約12MB少なくなります。
これが(このDockerfileに基づく)回答の元のバージョンです。当時PythonはPython3.6とAlpine3.7でDockerイメージを提供していなかったため、Pythonを純粋なAlpineイメージに手動でインストールしました。このようにPython2.7をインストールする場合は、apk add py2-pip
も実行します。 (py-pip
と呼ばれます 古いアルパインリポジトリで)。
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"]