Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用枕头numpy scipy PyBrain创建苗条的Docker图像_Python_Docker - Fatal编程技术网

Python 使用枕头numpy scipy PyBrain创建苗条的Docker图像

Python 使用枕头numpy scipy PyBrain创建苗条的Docker图像,python,docker,Python,Docker,我正在尝试创建具有依赖项的gunicorn枕头numpy scipy PyBrain苗条图像。但是,无论我做什么,我的图像大小都会超过500 MB。是否有任何技巧可以减小docker图像的大小 FROM python:2.7-alpine RUN echo "http://dl-4.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories RUN apk --update add --no-cache \

我正在尝试创建具有
依赖项的gunicorn枕头numpy scipy PyBrain
苗条图像。但是,无论我做什么,我的图像大小都会超过500 MB。是否有任何技巧可以减小docker图像的大小

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

我相信这是python docker图像的常见问题。仅您的pip需求就需要
292Mb
I在virtualenv中测量。您的起始docker映像
python:2.7-alpine
25Mb
。测量apk add包的大小是
228MB