python docker 镜像过大_docker(19):压缩docker python 镜像大小,减少依赖

1,关于python镜像

使用python开发的时候遇到问题。

发现构建之后 镜像还是比较大的。想办法减少点文件啥的。

能让镜像小点,这样发布部署啥的都方便。

2,构建dockerfile

python3 在构建pandas 遇到点问题。

还是使用python2 进行构建的:

FROM python:2-slim-jessie

#设置 apt sources pip timezone 参数

RUN echo "deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib" > /etc/apt/sources.list && \ echo "deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib" >> /etc/apt/sources.list && \

echo "deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list && \ echo "deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib" >> /etc/apt/sources.list && \

echo "[global]" > /etc/pip.conf && \

echo "trusted-host=mirrors.aliyun.com" >> /etc/pip.conf && \

echo "index-url=http://mirrors.aliyun.com/pypi/simple" >> /etc/pip.conf && \

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \

echo "Asia/Shanghai" > /etc/timezone

#install other lib

#名字变了 libmariadbclient-dev-compat - MariaDB database development files (libmysqlclient compatibility)

# libmysqld-dev

# 安装完成就不需要 dev库了删除节省空间。

# pip install pyspark 好像有问题

# https://blog.csdn.net/i2cbus/article/details/41625337 参数优化。

RUN apt-get update && apt-get install -y python-dev libmysqlclient-dev gcc cron vim supervisor git && \

echo "#define WITH_DOC_STRINGS 1" >> /usr/include/python2.7/pyconfig.h && \

pip install --upgrade pip && \

pip install mysqlclient && \

pip install sqlalchemy && \

pip install requests && \

pip install numpy pandas jupyter && \

apt-get install -y libmysqlclient18 && \

rm -rf /root/.cache && apt-get autoclean && \

apt-get --purge autoremove -y python-dev libmysqlclient-dev gcc && \

find /usr/lib/python2.7 -name '*.pyc' -delete && \

find /usr/local/lib/python2.7 -name '*.pyc' -delete && \

rm -rf /tmp/* /var/lib/apt/* /var/cache/* /var/log/*

#1.解决 pandas 数据插入问题。直接修改数据库驱动 sqlalchemy 修改:statement.replace("INSERT INTO","INSERT IGNORE INTO")

# debian /usr/local/lib/python2.7/site-packages/sqlalchemy

# ubuntu /usr/local/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/mysqldb.py

# 增加了一个 IGNORE 参数。

#2.解决torndb在python2下面的问题:

#http://blog.csdn.net/littlethunder/article/details/8917378

RUN sed -i -e 's/executemany(statement/executemany(statement.replace\("INSERT INTO","INSERT IGNORE INTO")/g' \

/usr/local/lib/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py

#增加语言utf-8

ENV LANG=en_US.UTF-8

ENV LC_CTYPE=en_US.UTF-8

ENV LC_ALL=C

修改了debian mirror 使用aliyun 的地址,pip 安装也修改成 aliyun地址。

这样安装速度超级快。

在安装的时候用 python-dev libmysqlclient-dev gcc 安装完成之后把

python-dev libmysqlclient-dev gcc 这些再删除,这样小很多。

find /usr/lib/python2.7 -name '*.pyc' -delete && \

find /usr/local/lib/python2.7 -name '*.pyc' -delete && \

删除了pyc的 python文件能大概小 80 mb。

rm -rf /root/.cache && apt-get autoclean

rm -rf /tmp/* /var/lib/apt/* /var/cache/* /var/log/*

删除临时文件。

经过一系列删除之后镜像大小到了 484MB ,我已经很努力了。

3,总结

精简了之后其他人在使用的时候就方便多了。在下载的速度也快了。

压缩之后会更小点。把股票系统的镜像再重新修改下。

就专注股票数据抓取,数据分析就行。展示使用golang再写一个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值