Docker的分层构建

分层构建意在减少容器的容量,分享一下心得,示例如下

#image for 
FROM centos:latest  as build


ADD Python-3.7.7.tgz /opt/

ENV PATH /usr/local/python3/bin:$PATH

RUN mkdir -p /usr/local/python3 && \
    yum -y install gcc automake autoconf libtool make zlib-devel bzip2 bzip2-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel git cmake ncurses-devel &> /dev/null && yum clean all
    
RUN cd /opt/Python-3.7.7 && \
    chmod +x configure && \
    ./configure prefix=/usr/local/python3 --with-ssl &> /dev/null && \
    make -j 8 &> /dev/null &&  \
    make altinstall &> /dev/null


    
FROM centos:latest
COPY --from=build /usr/local/python3  /usr/local/python3 
ADD sds_tool.tgz /opt

ENV PATH /usr/local/python3/bin:$PATH

ENV STATICE_LICENSE_PATH /root/license.lic 

RUN ln -s /usr/local/python3/bin/python3.7 /usr/local/bin/python && \
    ln -s /usr/local/python3/bin/pip3.7 /usr/local/bin/pip && \
    pip install --upgrade pip &> /dev/null && \
    以下可以放自己需要的东东
    xxxxxx

主要有两个地方的改动

1.添加 &> /dev/null,不要把信息打印到控制台,调试的时候可以加,等调试完成以后加上重新build即可

2.根据实际情况拿到编译后的python就可以了,至于yum哪些可以忽略

FROM centos:latest  as build 

COPY --from=build /usr/local/python3  /usr/local/python3 

也许有人会问为什么不适用python官网的镜像,或者为什么不急于apline此类的基础镜像,因为有些情况是乌龟的臀部;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值