如何解决减少Docker映像大小
因此,我尝试使用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.75GB的增加,您应该从那里开始。没有简单的灵丹妙药。这些是第一步:
- 查看各个依赖项增加了多少图像。从最大的罪犯开始。
- 查看依赖项是否允许其他安装变体。也许有一个不需要完整库的版本。
- 查看是否可以手动删除部分依赖项。如果您在
pip install --no-cache-dir -r requirements.txt && rm -rf somepath
之后立即删除,则docker映像将不会增长。 - 接下来,您可以搜索更优化的基础图像。您可以改用
python:3.6-slim
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。