Docker
のpython:3.7-alpine3.8
で、postgresql
のドライバpsycopg2
をインストールする。
そのままでは失敗する。
# Dockerfileの抜粋
FROM python:3.7-alpine3.8
RUN pipenv install --system # psycopg2がPipfileに記載されてる
$ docker build .
.. 略
Error: pg_config executable not found.
.. 略
のような文面が表示される。 調べてみたところ、pyscopg2 · Issue #1 · frol/docker-alpine-python3 · GitHub が参考になった。以下のようにすればいい。
# Dockerfileの抜粋
FROM python:3.7-alpine3.8
RUN apk update && \
apk add postgresql-libs && \
apk add --virtual .build-deps gcc musl-dev postgresql-dev && \
pipenv install --system && \
apk --purge del .build-deps
apk add --help
とapk --help --verbose
でヘルプを見れば大体の動作はわかるだろう。
- 前半3行は、
psycopg2
のインストールの必要なものの準備。 最後1行は、準備の使ったモジュールを削除。
といった具合。クリーンに用意できるようだ。
コメント