本文为上篇文章《初用Docker总结》中所提到的,对自己的一个算法项目的进行Docker镜像制作的一个大致的流程。也算是填了上文中挖的坑,谨做记录,将来遗忘流程时借以查阅。
Pecan 介绍
Pecan 的创建是为了填补 Python Web 框架世界中的空白:一个非常轻巧的框架,它提供了对象分派样式路由(object-dispatch style routing)。Pecan 并非旨在成为“全栈”框架,因此不提供对会话(sessions)或数据库之类的现成支持。相反地 Pecan 专注于 HTTP 本身。
Pecan官网:http://www.pecanpy.org/
Pecan 封装算法
安装Pecan
1
pip install pecan
创建Pecan项目
1
pecan create test_project
安装Pecan默认库
1
python setup.py develop
python setup.py develop:安装某个库或包时,这个包需要你不断修改,这样你就不得不重新安装,这时就采用这种安装方法。
python setup.py install:主要是安装典型第三方包,这种包比较稳定,不再需要你去编辑、修改或是调试。生成的目录结构如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33test_project/
├── config.py
├── MANIFEST.in
├── public #一些静态文件包括CSS,JS,images,为你的开发服务
│ ├── css
│ │ └── style.css
│ └── images
│ └── logo.png
├── setup.cfg
├── setup.py
└── test_project #基于MVC模型生成的结构
├── app.py #决定应用是如何创造的,这个文件必须包含set_app()并返回WSGI应用对象,一般情况下就用原生的,除非不能满足你定制的应用。
├── controllers #控制层实现
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── root.py
│ └── root.pyc
├── __init__.py
├── __init__.pyc
├── model #模型实现
│ ├── __init__.py #在这里可以加入与database交互,定义表和ORM等
│ └── __init__.pyc
├── templates #模板实现
│ ├── error.html
│ ├── index.html
│ └── layout.html
└── tests #单元测试
├── config.py
├── __init__.py
├── test_functional.py
├── test_units.py
└── test_units.pyc
8 directories, 23 files封装算法
一般我个人习惯将待封装的算法脚本放在
controllers
文件夹下。在同目录
root.py
脚本中封装自己的算法。
制作Python3.8 + OpenCV4.5.0 基础镜像
Dockerfile
内容如下,并将从OpenCV官网下载的opencv-4.5.0.zip
放在同目录下,此目录中不可有其他文件。
1 | FROM python:3.8 |
构建Python3.8 + OpenCV4.5.0基础镜像 。
1 | # 构建镜像 |
基于 基础镜像 制作 项目依赖镜像
可以参考《初用Docker总结》一文中 通过已有镜像来新建自有镜像,来基于Python3.8 + OpenCV4.5.0基础镜像 制作 项目依赖镜像。
制作 算法 Web API 镜像
通过Dockerfile,对算法项目进行镜像打包。
Dockerfile
内容如下,并将算法项目放在同目录下,此目录中不可有其他文件。requirements.txt
位于算法项目 目录中。
1 | FROM wangcong/python38-opencv:v1.0.0 |
基于项目依赖镜像 创建 算法Web API镜像。
1 | # 构建镜像 |