Flask
是 Python 中最流行的 Web 框架之一,以小巧、灵活、可扩展性强著称。相比 Django
,它给了开发者最大限度的自由。python
本文将经过一个简单的 Demo 项目,来演示如何在 CODING 持续集成 。docker
固然,你还须要一个 CODING 帐号 :) 当即注册。flask
这里我准备了一个完整的 python-flask-demo)。缓存
固然,你也能够本身准备一个 Python
+ Flask
的项目 ~框架
不知道如何将项目推送至 CODING 代码仓库的同窗能够查看这篇帮助文档。 快速使用代码仓库编辑器
因为咱们须要将持续集成中构建产出的 Docker
镜像推送至 CODING 制品库,所以须要先新建好一个制品仓库,详细步骤可参考 在 CODING 中使用 Docker 制品库 一文,在此不作详细介绍。测试
注意:新建的制品仓库名称须要与 Demo 项目中 Jenkinsfile
里的 ARTIFACT_REPO
环境变量对应。ui
至此你应该已经准备好了:url
Python
+ Flask
的 CODING 项目那么接下来就开始咱们激动人心的 CODING 持续集成之旅吧!spa
1.首先,进入你的项目,选择左侧导航栏中的 持续集成,而后点击其右侧的 构建:
2.点击 新建构建计划配置:
3.输入 计划名称,这里 代码源 咱们选用 CODING,代码仓库 选择咱们刚才建立好的项目便可,配置来源 咱们能够选用代码仓库中的 Jenkinsfile
,也可使用下面的静态配置的 Jenkinsfile
模板咱们内置了具备表明性的一些模板,也欢迎你向咱们提供模板或者提出须要某种模板的需求。若是你对 Jenkins 有所了解,你也能够选择 自定义构建过程
4.若是你使用的是上面提供的 Demo 项目,那么新建成功后咱们就会默认进入到 图形化的编辑器 的页面:
固然若是你喜欢经过代码直接编辑 Jenkinsfile
,也能够选择 文本编辑器:
至此,咱们的 CODING 持续集成构建计划已建立完毕,你还能够根据自身状况,来修改持续集成的 触发规则、变量与缓存 以及 通知提醒 等。
咱们返回至 持续集成 -> 构建 页面,此时能够看到咱们刚新建的 构建计划,如今,咱们能够开始构建咱们的项目了。
1.点击右上角的 当即构建 按钮:
2.点击后会弹出一个 当即构建 的窗口,咱们能够在此选择 构建目标,目标能够是你的任意 Git branch
,或者 Tag
,亦或 commit ID
都行。
咱们还能够自定义 启动参数,自定义的启动参数将会在构建期间以 环境变量 的形式注入到 Jenkins Pipeline
之中。
确认以后咱们便可点击下方的 当即构建 来开启咱们的构建:
3.此时 CODING 持续集成已经在为你的项目依照以前的配置开启了构建:
4.检查制品库中是否已有咱们构建好的 Docker
镜像:
Docker
镜像已被咱们成功推送至制品库内,咱们能够随时将其 拉取 下来,推送 至其余制品库,或者共享出去,将其运行后访问 5000
端口即会返回一个 Hello World
。pipeline { agent any // 环境变量,全局可用 environment { // 你的企业惟一标识 ENTERPRISE = "coding-public" // 项目名称 PROJECT = "python-flask-demo" // 制品仓库名称 ARTIFACT_REPO = "registry" // Docker 镜像名称 IMAGE_NAME = "python-flask-demo" // CODING DOMAIN,无需更改 CODING_DOMAIN = "coding.net" // 制品库 Registry 的基础 HOST,无需更改 ARTIFACT_BASE = "${ENTERPRISE}-docker.pkg.${CODING_DOMAIN}" // Docker 镜像全名,无需更改 ARTIFACT_IMAGE = "${ARTIFACT_BASE}/${PROJECT}/${ARTIFACT_REPO}/${IMAGE_NAME}" } stages { stage('检出') { steps { // Git checkout,无需更改 checkout([ $class: 'GitSCM', branches: [[name: env.GIT_BUILD_REF]], userRemoteConfigs: [[url: env.GIT_REPO_URL, credentialsId: env.CREDENTIALS_ID]] ]) } } stage('打包镜像') { steps { // 根据项目根目录下的 Dockerfile 制做镜像 sh "docker build -t ${ARTIFACT_IMAGE}:${env.GIT_BUILD_REF} ." // 将制做出来的镜像打上标签 sh "docker tag ${ARTIFACT_IMAGE}:${env.GIT_BUILD_REF} ${ARTIFACT_IMAGE}:latest" } } stage('推送到制品库') { steps { script { // 推送至制品库 docker.withRegistry("https://${ARTIFACT_BASE}", "${env.DOCKER_REGISTRY_CREDENTIALS_ID}") { docker.image("${ARTIFACT_IMAGE}:${env.GIT_BUILD_REF}").push() docker.image("${ARTIFACT_IMAGE}:latest").push() } } } } } }
本文介绍了如何利用 CODING 的 持续集成、制品库 来帮你的应用经过 Jenkins
自动化构建、测试等。并经过一个 Python
+ Flask
的 Demo 示例来进一步带你一步一步的实践。