要点:
一 单独虚拟环境
pip freeze > requirements.txt
会有很多没使用的包
二 pipreqs
pipreqs是第三方库,需要先安装才能使用:
pip install pipreqs
# 安装完成后,cd到项目根目录,运行下方命令即可生成依赖包清单:
pipreqs .
# 如果报错
pipreqs . --encoding=utf-8
# 根据依赖包清单批量安装包:
pip install -r requriements.txt
三 docker 打包
# wi-cv镜像打包并部署到义乌服务器流程
1. cd到工作目录
2. docker运行打包
这里-t 后面的是镜像名称,0.1是版本号,.是当前目录。注意每次发布,版本号要更新,否则会覆盖之前的镜像。
> docker build -t wi-cv:3.0.2 .
3. docker运行导出
> docker save -o wi-cv.tar wi-cv:3.0.2
4. 将导出的镜像文件上传到服务器
把wi-cv.tar上传到服务器,然后使用服务器上的docker导入镜像
> docker load -i wi-cv.tar
导入后,可以使用docker images查看是否导入成功
5. 停止旧容器,启动新容器
首先删除老的容器
比如使用docker ps,先查看老的容器信息
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9a716597303d http-cv:3.0.0-runtime "python3 -m flask ru…" 2 months ago Up 6 days pedantic_hypatia
43145c74ba47 alqutami/rtmp-hls "nginx -g 'daemon of…" 8 months ago Up 7 weeks 0.0.0.0:1935->1935/tcp, :::1935->1935/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp loving_allen
```
这里第一条是老的容器,删除可以使用容器id(可以只写前几位)
> docker rm -f 9a716
启动新的容器,name是容器名称,最后的参数是镜像的名称+版本号
> docker run --network host --name wi-cv -d wi-cv:3.0.1