减少Docker映像大小

时间:2020-09-08 16:34:17

标签: python docker docker-compose amazon-ecs

因此,我尝试使用docker-compose将多容器服务(Web,Worker,Redis)部署到ECS。该服务具有ML模型,该模型需要Tensorflow和Keras作为依赖项。运行pip install -r requirements.txt后,映像大小增加到超过2gb,其中1.75gb是依赖项。有没有办法减小此图像的大小?由于在云上部署如此大的映像有很多弊端?

用于Web的Dockerfile:

FROM python:3.6
WORKDIR .
COPY . .
RUN pip install --no-cache-dir -r requirements.txt
EXPOSE 5000
CMD ["python", "views.py"]
requirements.txt:
Flask==1.1.2
numpy==1.18.5
opencv-python==4.2.0.34
Pillow==7.1.2
redis==3.5.3
rq==1.4.3
boto3
pymongo
Keras==2.2.4
tensorflow==1.15.0
matplotlib

1 个答案:

答案 0 :(得分:1)

鉴于您的依赖性导致1.75GB的增加,您应该从那里开始。没有简单的灵丹妙药。这些是第一步:

  1. 查看各个依赖项增加了多少图像。从最大的罪犯开始。
  2. 查看依赖项是否允许其他安装变体。也许有一个不需要完整库的版本。
  3. 查看是否可以手动删除部分依赖项。如果您在pip install --no-cache-dir -r requirements.txt && rm -rf somepath之后立即删除,则docker映像将不会增长。
  4. 接下来,您可以搜索更优化的基础图像。您可以改用python:3.6-slim