我试图用gunicorn Pillow numpy scipy PyBrain
依赖创建苗条的图像。无论我做什么,我的图像大小都超过500 MB。有没有减少泊坞窗图像大小的技巧?
FROM python:2.7-alpine
RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk --update add --no-cache \
lapack-dev \
gcc \
freetype-dev
RUN apk add --no-cache --virtual .build-deps \
gfortran \
musl-dev \
g++ \
jpeg-dev \
zlib-dev
RUN apk add --update tini
COPY requirements.txt /app/
COPY app/ /app/
WORKDIR /app
RUN pip install numpy==1.13.3
RUN pip install -r requirements.txt
RUN apk del .build-deps
EXPOSE 8080
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["gunicorn", "-w 3", "-b :8080", "app:app"]
需要在相同的RUN
命令中删除构建依赖项,以避免将它们存储到自己的层中。例如:
COPY requirements.txt /app/
RUN apk add --no-cache --virtual .build-deps \
gfortran \
musl-dev \
g++ \
jpeg-dev \
zlib-dev \
&& pip install -r requirements.txt \
&& apk del .build-deps
请注意,每次更新需求时,这将导致额外的构建时间,因为apk
命令也将被执行。如果这对您的应用程序来说是不可接受的,那么只需删除RUN apk del .build-deps
步骤,因为这不会减小图像大小,但它会增加它,因为在不同的图像层中添加/删除包。