真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何使用CODINGDevOps部署Serverless應(yīng)用

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

成都創(chuàng)新互聯(lián)公司自2013年起,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元羅定做網(wǎng)站,已為上家服務(wù),為羅定各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220

從 GitHub Actions 到 CODING DevOps

CI/CD 已成為軟件開發(fā)環(huán)節(jié)的標(biāo)配,倡導(dǎo)將一切自動化,這里期待在代碼提交到 master 分支后就會自動部署應(yīng)用。

因?yàn)榇a 托管在 GitHub 上,首先考慮的是使用 GitHub Actions 部署應(yīng)用。

然而在使用 GitHub Actions 時,總是會超時失敗,這是因?yàn)?GitHub Actions 官方托管服務(wù)器在國外,在部署到國內(nèi)的環(huán)境時,網(wǎng)絡(luò)延遲很大,從而導(dǎo)致失敗。

于是暫時放棄使用 GitHub Actions 部署戰(zhàn)點(diǎn),并考慮使用國內(nèi)的免費(fèi) CI/CD 工具,在調(diào)研后選擇了騰訊旗下的 CODING DevOps。

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

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

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

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

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

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

同步代碼到 CODING 的 workflow 的 YAML 文件內(nèi)容如下:

name: sync-to-coding

on:
  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 目標(biāo)倉庫地址
          coding-repo: "git@e.coding.net:donghui1/serverlesslife/serverlesslife.git"

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

如何使用CODING DevOps部署Serverless 應(yīng)用

準(zhǔn)備 CI 所需的 Docker 鏡像

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

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

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

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

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

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

如何使用CODING DevOps部署Serverless 應(yīng)用

配置 CODING 持續(xù)集成構(gòu)建計劃

CODING 持續(xù)集成功能是基于 Jenkins 二次開發(fā)的,支持 Jenkins Pipeline。

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

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

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

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

如何使用CODING DevOps部署Serverless 應(yīng)用

添加所需的環(huán)境變量:

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

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

如何使用CODING DevOps部署Serverless 應(yīng)用

如何使用CODING DevOps部署Serverless 應(yīng)用

最終的 Jenkinsfile 內(nèi)容如下:

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'
        }
      }


      stage('Deploy') {
        agent {
          docker {
            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 階段主要是用于構(gòu)建,這里使用 hugo 鏡像以及 hugo 命令進(jìn)行構(gòu)建

    • Deploy 階段則是使用 serverless 鏡像以及 serverless deploy 命令部署應(yīng)用,其中 docker args 中 TZ="Asia/Shanghai” 表示設(shè)置時區(qū)中國區(qū),這樣 serverless 命令行將會將應(yīng)用部署到騰訊云,否則默認(rèn)部署到 AWS

  • 需要特別說明的是用于拉取代碼的 CREDENTIALS_ID 環(huán)境變量和用于拉取 Docker 鏡像的 DOCKER_REGISTRY_CREDENTIALS_ID 是 CODING 持續(xù)集成平臺提供的,無需手動設(shè)置

設(shè)置觸發(fā)規(guī)則:

這里設(shè)置在代碼推送到 master 分支時,自動觸發(fā)構(gòu)建。

如何使用CODING DevOps部署Serverless 應(yīng)用

至此,整個持續(xù)集成構(gòu)建計劃的配置就完成了。

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

如何使用CODING DevOps部署Serverless 應(yīng)用

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


本文標(biāo)題:如何使用CODINGDevOps部署Serverless應(yīng)用
當(dāng)前路徑:http://weahome.cn/article/pooosj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部