使用Pillow numpy scipy PyBrain创建纤薄的Docker镜像

问题描述 投票:3回答:1

我试图用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"]
python docker
1个回答
0
投票

需要在相同的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步骤,因为这不会减小图像大小,但它会增加它,因为在不同的图像层中添加/删除包。

© www.soinside.com 2019 - 2024. All rights reserved.