docker打包Python代码服务的一种方式

4 篇文章 0 订阅
3 篇文章 0 订阅
FROM python:3.7-alpine
WORKDIR /opt/
ADD supervisor.tar.gz /root/
ADD requirements.txt /root/
ADD xxx-master.tar /root/
ADD path.pth /usr/local/lib/python3.7/site-packages/
RUN apk add --no-cache vim supervisor postgresql-dev musl-dev gcc tzdata \
    && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
    && echo "Asia/Shanghai" > /etc/timezone \
    && apk del tzdata \
    && cd /root && pip3 install -r requirements.txt \
    && echo "${TIME_ZONE}" > /etc/timezone \
    && ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime \
    && mkdir -p /var/log/supervisor \
    && mkdir -p /opt/acd/ \
    && ls /root/ \
    && mv /root/xxx-master/ /root/xxx/ \
    && mv /root/xxx/ /opt/acd/ \
    && mkdir -p /opt/xxx/log/ \
    && mkdir /etc/supervisor.d/ \
    && cp -r /root/supervisor.d/*  /etc/supervisor.d/
CMD ["supervisord","-n"]

FROM 基于哪个底包构建,也是拉取这个镜像

WORKDIR 设置工作路径

ADD 添加文件到镜像内(注意这里ADD强大的一点就是如果你ADD的是压缩包格式,它会自动解压,将解压后的内容添加到镜像内)

RUN 可以理解为linux shell的具体操作,注意看我这里用的&&连接符,也就是说整个RUN是一条命令,也可以说这样实现的只有一个RUN

CMD 设置此docker运行时守护的进程,会替换掉python:3.7-alpine的启动命令

注意alpine的安装依赖的命令是:apk add --no-cache(这个是不保留安装包) vim …

这个实现方式因具体实施情况而异
总的思想是以python:3.7-alpine为底包,默认主进程为python3.7,后续将自己的代码打入镜像,重新构建镜像,用supervisor守护你的每一个py进程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值