Getestet mit Python 3.4.8, 3.5.5, 3.6.5 und 2.7.14 (ersetzen Sie einfach 3 durch 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"]
Erläuterung:Um Psycopg zu bauen, benötigen Sie die Pakete gcc musl-dev postgresql-dev
. Dann brauchen Sie auch diese ausführbare pg_config-Datei:während Sie einfach postgresql-dev
installieren funktionieren, postgresql-libs
funktioniert auch gut und nimmt etwa 12 MB weniger Speicherplatz ein.
Hier ist die Originalversion der Antwort (basierend auf dieser Docker-Datei), in der ich Python manuell auf einem reinen Alpine-Image installiere, da Python zu diesem Zeitpunkt das Docker-Image nicht mit Python 3.6 und Alpine 3.7 bereitgestellt hat. Wenn Sie Python 2.7 so installieren möchten, führen Sie auch apk add py2-pip
aus (genannt py-pip
in älteren alpinen Repos).
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"]