Docker部署python项目


公司有个python项目需要部署,之前没有部署过python项目,记录一下。

步骤

(1) 生成requirements.txt
pip freeze > requirements.txt
(2) dockerfile编写
#项目使用的是python3.8的解释器
FROM python:3.8

#切换一下镜像源
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

# 设置工作目录
WORKDIR /data/data-service

# 复制项目文件到容器中
COPY ./ /data/data-service

#加载第三方依赖
RUN pip install -r requirements.txt

#项目端口号
EXPOSE 12580

#时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 

#这里没有用CMD是因为编写了一个.sh启动脚本
ENTRYPOINT ["python", "webserver.py"]

启动脚本如下:

#! /bin/bash

pjname=$1
path=/usr/local/docker/$pjname
Port=
for i in ${@:2}
do
        Port="$Port -p $i:$i"

done

cd $path
pwd
docker stop $pjname
docker rm $pjname
docker rmi $pjname:latest
docker build -t $pjname .
mkdir /usr/local/docker/$pjname/log
docker run -d  --net host --restart=always $Port -v /usr/local/docker/$pjname/log/:/data/$pjname/log/ --name $pjname $pjname:latest --dockername=$pjname
docker logs -f --since 1m $pjname & { sleep 30; kill $! & }
echo -e "\033[34m Only the first 30s logs are displayed here \033[0m"
echo -e "\033[34m Only the first 30s logs are displayed here \033[0m"
echo -e "\033[34m Only the first 30s logs are displayed here \033[0m"

参考文章:

  1. python项目 以docker形式打包部署全流程
  2. 如何在docker部署一个python项目
(3) 项目文件上传到和dockerfile同级
(4) 执行启动脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值