Diuji dengan Python 3.4.8, 3.5.5, 3.6.5 dan 2.7.14 (ganti saja 3 dengan 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"]
Penjelasan:untuk membangun Psycopg Anda memerlukan paket gcc musl-dev postgresql-dev
. Maka Anda juga memerlukan pg_config yang dapat dieksekusi:sambil menginstal postgresql-dev
akan bekerja, postgresql-libs
juga baik-baik saja dan menggunakan lebih sedikit ruang 12 MB.
Inilah versi asli dari jawabannya (berdasarkan Dockerfile ini) di mana saya menginstal Python secara manual ke gambar Alpine murni karena pada saat itu Python tidak menyediakan gambar Docker dengan Python 3.6 dan Alpine 3.7. Jika Anda ingin menginstal Python 2.7 seperti itu, lakukan juga apk add py2-pip
(disebut py-pip
di repo Alpine yang lebih lama).
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"]