久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何使用CODING DevOps部署Serverless 應用

190次閱讀
沒有評論

共計 3466 個字符,預計需要花費 9 分鐘才能閱讀完成。

這篇文章給大家介紹如何使用 CODING DevOps 部署 Serverless 應用,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

從 GitHub Actions 到 CODING DevOps

CI/CD 已成為軟件開發環節的標配,倡導將一切自動化,這里期待在代碼提交到 master 分支后就會自動部署應用。

因為代碼 托管在 GitHub 上,首先考慮的是使用 GitHub Actions 部署應用。

然而在使用 GitHub Actions 時,總是會超時失敗,這是因為 GitHub Actions 官方托管服務器在國外,在部署到國內的環境時,網絡延遲很大,從而導致失敗。

于是暫時放棄使用 GitHub Actions 部署戰點,并考慮使用國內的免費 CI/CD 工具,在調研后選擇了騰訊旗下的 CODING DevOps。

考慮到國內拉取 GitHub 代碼會比較慢,
這里首先使用 GitHub Actions 將代碼自動同步到
coding.net
  的代碼倉庫,然后再使用 CODING 持續集成進行自動化部署。

使用  GitHub Actions 將代碼自動同步到 CODING

GitHub Actions 有一個特別好的功能是:有一個 GitHub Marketplace,目前有 7000 多個 Action,開發者可以從中挑選適合自己的 Action。

開發者也可以定義自己的 Action,也可以將自己的 Action 發布到 GitHub Marketplace。

這里定制了一個 Action 用于同步代碼到 CODING:
https://github.com/marketplace/actions/sync-repo-to-coding

每個倉庫可以配置多個 workflow,在 GitHub 倉庫的  .github/workflows 下添加用來定義 workflow 的 YAML 文件即可。

同步代碼到 CODING 的  workflow 的 YAML 文件內容如下:

name: sync-to-coding
 push:
 branches:
 - master # Set a branch to deploy
jobs:
 sync:
 runs-on: ubuntu-latest
 steps:
 - name: Sync to CODING
 uses: serverlesslife-cn/sync-repo-to-coding@master
 env:
 #  在  GitHub Settings- Secrets  配置  CODING_PRIVATE_KEY
 SSH_PRIVATE_KEY: ${{ secrets.CODING_PRIVATE_KEY }}
 with:
 #  注意替換為你的  GitHub  源倉庫地址
 github-repo:  git@github.com:serverlesslife-cn/serverlesslife.git 
 #  注意替換為你的  CODING  目標倉庫地址
 coding-repo:  git@e.coding.net:donghui1/serverlesslife/serverlesslife.git

每次提交代碼到 master 分支后,都會觸發 sync-to-coding 任務,Actions 日志截圖如下:

如何使用 CODING DevOps 部署 Serverless 應用

準備 CI 所需的  Docker 鏡像

CODING 構建部署過程中需要用到 Docker 鏡像,如:hugo 和 serverless,分別用于構建與部署階段。

從 DockerHub 挑選了下面符合要求的兩個鏡像:

https://hub.docker.com/r/cibuilds/hugo/

https://hub.docker.com/r/amaysim/serverless/

然后從 DockerHub 下載到本地,再手動上傳到了 CODING  的 Docker 制品倉庫。

這樣在構建過程中可以快速下載鏡像(如果從 DockerHub 下載,不僅速度慢,還有下載次數限制)。

如何使用 CODING DevOps 部署 Serverless 應用

配置 CODING 持續集成構建計劃

CODING 持續集成功能是基于 Jenkins 二次開發的,支持 Jenkins Pipeline。

如果熟悉 Jenkins,那么上手 CODING 持續集成就會很容易。

值得一提的是 CODING 持續集成提供了圖形化編輯生成 Jenkinsfile 的功能,大大降低了使用成本。

當然圖形化編輯器也有美中不足之處,它不會支持所有 Jenkins 步驟。

下面是使用圖形化編輯器可視化編輯 Jenkins Pipeline 的截圖:

如何使用 CODING DevOps 部署 Serverless 應用

添加所需的環境變量:

這里需要添加兩個環境變量:TENCENT_SECRET_ID、TENCENT_SECRET_KEY,用于登錄騰訊云。

為了避免密碼明文顯示在控制臺,添加這里的環境變量時要勾選「保密」。

如何使用 CODING DevOps 部署 Serverless 應用

如何使用 CODING DevOps 部署 Serverless 應用

最終的 Jenkinsfile 內容如下:

pipeline {
 agent any
 stages { stage( Checkout) {
 steps {
 checkout([
 $class:  GitSCM ,
 branches: [[name: GIT_BUILD_REF]],
 userRemoteConfigs: [[
 url: GIT_REPO_URL,
 credentialsId: CREDENTIALS_ID
 ]]])
 }
 }
 stage(EnvSetUp) {
 steps {
 sh  touch .env 
 sh  echo TENCENT_SECRET_ID=${TENCENT_SECRET_ID}   .env 
 sh  echo TENCENT_SECRET_KEY=${TENCENT_SECRET_KEY}   .env 
 }
 }
 stage(Build) {
 agent {
 docker {
 reuseNode  true 
 registryUrl  https://donghui1-docker.pkg.coding.net 
 registryCredentialsId  ${env.DOCKER_REGISTRY_CREDENTIALS_ID} 
 image  serverlesslife/hugo/hugo:latest 
 }
 }
 steps {
 sh  HUGO_ENV=production hugo 
 }
 }

 reuseNode  true  registryUrl  https://donghui1-docker.pkg.coding.net  registryCredentialsId  ${env.DOCKER_REGISTRY_CREDENTIALS_ID}  image  serverlesslife/serverless/serverless:2.28.0  args  -e TZ= Asia/Shanghai  }  }  steps {  sh  serverless deploy  }  }  } }

對于 Jenkinsfile 做如下說明:

pipeline 由 agent、stages 和 post 組成,其中 stages 下包括一系列 stage,而 stage 下又有 steps,steps 下則是一些指令

stages 下包括多個 stage:Checkout、EnvSetUp、Build、Deploy

Checkout 階段用于檢出代碼,這里是私有倉庫,用到了 Credentials 插件

EnvSetUp 階段用于生成 .env 文件,用于自動登錄騰訊云

Build 階段主要是用于構建,這里使用 hugo 鏡像以及 hugo 命令進行構建

Deploy 階段則是使用 serverless 鏡像以及 serverless deploy 命令部署應用,其中 docker args 中 TZ= Asia/Shanghai”表示設置時區中國區,這樣 serverless 命令行將會將應用部署到騰訊云,否則默認部署到 AWS

需要特別說明的是用于拉取代碼的 CREDENTIALS_ID 環境變量和用于拉取 Docker 鏡像的 DOCKER_REGISTRY_CREDENTIALS_ID 是 CODING 持續集成平臺提供的,無需手動設置

設置觸發規則:

這里設置在代碼推送到 master 分支時,自動觸發構建。

如何使用 CODING DevOps 部署 Serverless 應用

至此,整個持續集成構建計劃的配置就完成了。

此后,每次提交代碼到 GitHub 倉庫的 master 后,GitHub Actions 便會將代碼自動同步到 CODING 的代碼倉庫,然后便會觸發 CODING 持續集成來自動部署網站。

如何使用 CODING DevOps 部署 Serverless 應用

關于如何使用 CODING DevOps 部署 Serverless 應用就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計3466字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 高淳县| 晴隆县| 象州县| 嘉定区| 古浪县| 福安市| 甘南县| 韶关市| 攀枝花市| 萨迦县| 郧西县| 黔江区| 马鞍山市| 上杭县| 玛多县| 确山县| 叶城县| 汨罗市| 琼中| 民权县| 伊通| 克什克腾旗| 禄丰县| 四子王旗| 乌什县| 信宜市| 曲靖市| 调兵山市| 黄冈市| 石门县| 广丰县| 诸城市| 新巴尔虎右旗| 田阳县| 扶绥县| 松原市| 玉田县| 渝北区| 耒阳市| 五原县| 比如县|