【发布时间】:2019-07-26 19:47:03
【问题描述】:
我想 dockerize flask 有很多依赖项的应用程序。我的目标是减小最终 docker 镜像的大小。
我尝试了多阶段构建,但它并没有减少最终 docker 映像的大小。
下面是我的Dockerfile
FROM python:3.6-slim-buster as base
RUN apt-get update && apt-get install --no-install-recommends --no-upgrade -y \
libglib2.0-0 libxext6 libsm6 libxrender1 libfontconfig1 && rm -rf /var/lib/apt/lists/*
WORKDIR /wheels
COPY requirements.txt /wheels
RUN pip install -U pip \
&& pip wheel -r requirements.txt
FROM python:3.6-slim-buster
COPY --from=base /wheels /wheels
RUN pip install -U pip \
&& pip install -r /wheels/requirements.txt \
-f /wheels \
&& rm -rf /wheels \
&& rm -rf /root/.cache/pip/*
...
最后一个pip install... 命令占用905MB。
我应该如何将所有需求从最终镜像中分离出来并减小最终docker镜像的整体大小?
【问题讨论】:
-
是否所有需求及其依赖项都从轮文件安装?
-
@Klaus D. 是的。
标签: python docker docker-multi-stage-build