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 示例來進一步帶你一步一步的實踐。