经过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.7FROM python:3-alpineWORKDIR /usr/src/appCOPY 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-depsCOPY . .CMD ["python3", "app.py"]
说明:要构建Psycopg,您需要安装软件包
gcc musl-dev postgresql-dev。然后,您还需要pg_config可执行文件:虽然可以简单地安装
postgresql-dev,
postgresql-libs但也可以正常工作,并且占用的空间少12 MB。
这是答案的原始版本(基于Dockerfile),在该版本中,我手动将Python安装到纯Alpine映像上,因为那时Python并未提供Python
3.6和Alpine 3.7的Docker映像。如果要这样安装Python 2.7,也可以这样做
apk add py2-pip(
py-pip在较早的Alpine仓库中称为)。
FROM alpine:3.7WORKDIR /usr/src/appCOPY 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-depsCOPY . .CMD ["python3", "app.py"]



