我们将使用新版 DaoCloud 流水线构建以及部署一个简单的 Flask 应用,本项目代码维护在 https://github.com/tomwei7/python-example.git 项目中,您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。
Docker 化应用的关键元素镜像是 Docker 应用的静态表示,是应用的交付件,镜像中包含了应用运行所需的所有依赖:包括应用代码、应用依赖库、应用运行时和操作系统。
Dockerfile 是一个描述文件,描述了产生 Docker 镜像的过程,详细文档可以参见官方文档 Dockerfile reference。
容器是镜像运行时的动态表示,如果把镜像想象为一个 Class 那么容器就是这个 Class 的一个实例。
一个应用 Docker 化的第一步就是通过 Dockerfile 产生应用镜像。
编写 Dockerfile
FROM python:2.7
WORKDIR /usr/local/python-example
COPY . /usr/local/python-example
RUN pip install -r requirements.txt
#在构建中可以使用DaoCloud内网的pip镜像加快构建速度使用以下命令安装依赖
#RUN pip install -i http://nexus.daocloud.io/repository/daocloud-pypi/simple --trusted-host nexus.daocloud.io -r requirements.txt
EXPOSE 5000
CMD ["python", "run.py"]
通过 DaoCloud 进行构建镜像和部署应用
创建项目
配置流水线
初次使用时,我们为您创建了"测试”、"构建”两个阶段便于快速开始。流水线会从左到右依次执行,阶段内的任务为并发。按照此例会先并发执行"测试”下的所有任务,任务全部完成后再执行"构建”下的所有任务。如果需要编辑任务,点击卡片右上角的选项并选择"编辑任务”。根据需求自定义设置,完成设置后,可以通过 commit 代码,或在界面右上角选择"现在触发” 然后选择"master” 分支并点击"确定”来触发流水线
添加阶段:点击阶段右边可以自己定义一个阶段,例如添加一个发布阶段
添加并行任务:可以根据需要选择添加并行任务, 我们这里选择 Golang测试 任务
编辑任务:对此任务进行设置 ,详细如下:配置测试任务:在测试阶段添加并行任务,选择测试任务,添加测试命令并设置基础镜像,然后添加安装命令,安装程序依赖
使用模板配置测试任务
我们可以实际模板快速设置流水线,这里我们使用模板快速配置pytest,首先在测试阶段添加任务
修改镜像名到你需要的Python版本
配置构建任务:在构建阶段添加并行任务,选择标准构建,按需修改参数
然后点击右上角等待push代码按钮,手动触发代码开始构建镜像
以上是基于 Python 应用的流水线基本设置,其他应用的流水线设置请参考相关文档。