欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用drone?ci自動化部署靜態(tài)博客的完整步驟

 更新時間:2022年05月18日 10:37:40   作者:柏舟  
drone是基于容器的構建服務,配置簡單且免費,在 github上也有20Kstar,下面這篇文章主要給大家介紹了關于利用drone?ci自動化部署靜態(tài)博客的相關資料,需要的朋友可以參考下

前言

一直想自動化部署博客,但一直沒有實施計劃,直到最近有時間,就搞了起來。ci/cd的工具很多,我想drone ci應該是一款非常適合前端的工具,簡單,輕量級,基于docker,支持主流代碼托管網站,比如github,gitee,gitlab等等。

準備

我們需要一個已備案的域名和服務器,并申請好ssl證書,用于https證書。我是使用騰訊云的輕量級服務器,大家可以自行選擇。至于域名備案和ssl證書申請,各個平臺大同小異,大家按照其文檔說明弄,應該不會有太多問題,就不一一贅述了。

在有了服務器后,我們需要安裝docker和docker-compose,這樣我們直接運行docker-compose配置文件就可以輕松安裝好drone ci。本文主要是講解drone ci,所以docker和docker-compose的安裝和使用,大家可以自行學習,在此當做默認已經安裝。

代碼托管網站使用了gitee碼云。

安裝drone ci

1、docker-compose配置文件

通過docker-compose配置文件可以輕松安裝drone ci,新建一個docker-compose.yml文件,內容如下

version: "3.7"
# 創(chuàng)建自定義網絡
networks:
  drone:
    # external: false
    driver: bridge
services:
  # 數(shù)據(jù)庫服務
  db:
    image: postgres:latest
    container_name: drone_db
    restart: always
    networks:
      - drone # 加入到drone網絡
    ports:
      - "8081:5432" # 8081為容器暴露到服務器的端口,5432為容器內改應用的端口
    environment:
      - POSTGRES_USER=username # PGSQL默認用戶名
      - POSTGRES_PASSWORD=password # PGSQL默認密碼
      - POSTGRES_DB=db_name # PGSQL默認數(shù)據(jù)庫的名字
    volumes:
      - /volumes/drone/db:/var/lib/postgresql/data # 數(shù)據(jù)卷,前者為服務器真實位置,后者為改應用在容器內的位置
  # Drone Server 服務
  server:
    image: drone/drone:latest
    container_name: drone_server
    restart: always
    networks:
      - drone # 加入到drone網絡
    ports:
      - "7929:80"
      - "4443:443"
    environment:
      - DRONE_SERVER_PROTO=https # 訪問協(xié)議,創(chuàng)建webHooks和重定向
      - DRONE_SERVER_HOST=xxxx.com # 主機名稱,創(chuàng)建webHooks和重定向
      - DRONE_RPC_SECRET=xxxxxxxxx # 與 drone runner 通訊的密鑰
      - DRONE_USER_CREATE=username:xxxxxx,admin:true # 管理員賬戶
      - DRONE_DATABASE_DRIVER=postgres # 數(shù)據(jù)庫類型
      - DRONE_DATABASE_DATASOURCE=postgres://username:password@db/db_name?sslmode=disable # 數(shù)據(jù)庫連接
      - DRONE_GIT_ALWAYS_AUTH=true # 使用 oauth 身份驗證信息拉取代碼
      - DRONE_GITEE_CLIENT_ID=xxxxxxxx # GITEE 客戶端 id
      - DRONE_GITEE_CLIENT_SECRET=xxxxxxxxxxxx # GITEE 客戶端 密鑰
      - DRONE_GITEE_SKIP_VERIFY=false # 禁用 GITEE 鏈接時 tls 驗證

    volumes:
      - /volumes/drone/server:/data
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - db
  # Drone Docker Runner
  runner:
    image: drone/drone-runner-docker:latest # 目前drone-runner-docker最新版本為 1.8.0
    container_name: drone_runner
    restart: always
    networks:
      - drone # 加入到drone網絡
    ports:
      - "7930:3000"
    environment:
      - DRONE_RUNNER_NAME=docker-runner
      - DRONE_RUNNER_CAPACITY=10 # 限制runner可執(zhí)行的并發(fā)管道數(shù)量
      - DRONE_RPC_PROTO=https # 訪問drone server 協(xié)議
      - DRONE_RPC_HOST=xxxxx.com # 訪問drone server 服務器地址
      - DRONE_RPC_SECRET=xxxxxxx # 與 drone server 通訊的密鑰
      - DRONE_UI_USERNAME=username # Drone Runner 的 UI 用戶賬號
      - DRONE_UI_PASSWORD=password # Drone Runner 的 UI 用戶密碼
      # - DRONE_RUNNER_NETWORKS=drone_net
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    depends_on:
      - server

2、docker-compose配置文件主要參數(shù)詳解

配置文件里一些常用參數(shù)在上面的注釋里已經有解釋,這里只講解drone server和drone runner的配置項

drone server

基礎的鏡像版本,端口設置,網絡設置不再贅述,這些都是docker compose最常見的配置,主要是environment里面的參數(shù)說明

DRONE_SERVER_PROTO和DRONE_SERVER_HOST

這個參數(shù)是在代碼托管網站的配置里設置的,詳細配置會在后面說明,每個代碼托管網站的配置大同小異,這個網址是drone ci的管理網站,可以查看drone ci運行的詳細流程等

DRONE_RPC_SECRET

這個參數(shù)是drone server與drone runner通訊的秘鑰,在服務器使用OpenSSL生成,生成方法如下

$ openssl rand -hex 16

DRONE_USER_CREATE

這個參數(shù)非常重要,為drone ci管理網站的登錄賬號,這個賬號名一定要與代碼托管網站的用戶名一致,這樣才能登錄管理員賬號,如果無法登錄管理員賬號,將無法授權拉取代碼時的權限,運行時將會報錯

DRONE_DATABASE_DRIVER

數(shù)據(jù)庫類型,就是上面自己配置的數(shù)據(jù)庫

DRONE_DATABASE_DATASOURCE

postgres://username:password@db/db_name?sslmode=disable,這個參數(shù)中username為數(shù)據(jù)設置的用戶名,password為數(shù)據(jù)庫登錄密碼,db/db_name中db為固定值,db_name為創(chuàng)建的表名稱,這些參數(shù)都是上面數(shù)據(jù)庫的配置參數(shù)

DRONE_GITEE_CLIENT_ID和DRONE_GITEE_CLIENT_SECRET

這兩個參數(shù)是在代碼托管網站獲取,我使用的是gitee碼云。如何申請?

1、注冊碼云

2、創(chuàng)建OAuth應用

進入碼云設置中心,找到第三方應用

點擊創(chuàng)建應用

填寫創(chuàng)建應用所需信息

創(chuàng)建成功后,進入應用詳情

其中的Client ID和Client Secret便是DRONE_GITEE_CLIENT_ID和DRONE_GITEE_CLIENT_SECRET

drone runner

DRONE_RPC_PROTO和DRONE_RPC_HOST

和DRONE_SERVER_PROTO,DRONE_SERVER_HOST相同

DRONE_UI_USERNAME和DRONE_UI_PASSWORD

改賬號信息為drone runner的賬號信息,不同于drone server,drone runner的管理界面主要查看server運行的一些信息,而drone server的管理界面是管理應用的

3、執(zhí)行部署

在docker-compose配置文件的當前目錄下,執(zhí)行docker-compose up,drone ci就會自動安裝

進入管理界面

如果安裝沒有報錯,那么進入瀏覽器,輸入你配置過的DRONE_SERVER_HOST(前提是這個域名已經通過解析),便能進入

登錄成功后進入主頁面,此時會同步你代碼托管網站下的所有項目

點擊未激活項目,會直接進入到setting配置頁

點擊Activate Repository按鈕,激活項目,激活項目便會進入配置詳情頁

如果是管理員登入,project settings中的5個選項都會出現(xiàn),不然只會出現(xiàn)第一個選項,打開第二個選項Trusted

最后save changes一下,保存更改,此時項目即為激活項目

添加.drone.yml文件

到此整個drone ci的服務已經配置完成,那么如何持續(xù)部署我們的項目呢?對于cd有一定了解的人,都知道當我們git push的時候項目會通過webhooks通知ci服務,然后就會拉取代碼,重新部署代碼,從而完成一次ci/cd,這其中一個重要的配置文件起到重要作用,通常會向我們的項目中添加一個yaml文件,ci服務會讀取這個文件,從而執(zhí)行一個流程,完成部署。在drone ci中會向項目的根目錄添加一個.drone.yml文件,這個文件如何編寫,我以我的blog項目為例,下面是其配置文件內容

kind: pipeline # 定義一個管道
type: docker # 當前管道的類型
name: test # 當前管道的名稱

volumes: # 聲明數(shù)據(jù)卷(此為服務器中的實際目錄)
  - name: node_modules # 數(shù)據(jù)卷名稱
    host: # Host Volume
      path: /volumes/drone/volumes/blog/node_modules # 宿主機目錄    #絕對路徑
  - name: deploy_path
    host: 
      path: /workspace/blog

clone:
  disable: false # 啟用代碼拉取

steps: # 定義管道的執(zhí)行步驟
  - name: deploy # 步驟名稱
    image: node:16.13.2 # 當前步驟使用的鏡像
    depends_on: [clone] # 依賴的步驟
    volumes: # 掛載數(shù)據(jù)卷(此為容器內的目錄)
      - name: node_modules # 數(shù)據(jù)卷名稱
        path: /drone/src/node_modules # 容器內目錄 絕對路徑
      - name: deploy_path
        path: /drone/src/html
    commands: # 當前步驟執(zhí)行的命令
      - pwd # 查看當前目錄
      - npm config set registry https://registry.npm.taobao.org # 切換淘寶鏡像
      - npm install # 安裝node_modules包
      - npm run build # 執(zhí)行編譯
      # - rm -fr ./blog
      - ls /drone/src
      - cp -r ./public/* ./html

  - name: dingtalk-push
    image: lddsb/drone-dingtalk-message
    depends_on: [deploy]
    settings:
      token: xxxxxxxxxxxxxxxxxxxxxxxxxxx
      type: markdown
      message_pic: true
      sha_link: true
    when:
      event: [push]
      status: [success, failure]

.drone.yml文件的編寫較為復雜,具體請查詢drone文檔。其中dingtalk-push,是部署完成后通知釘釘,釘釘機器人的配置請查看釘釘?shù)奈臋n,該插件的詳細配置請查閱該插件文檔

總結

到此這篇關于利用drone ci自動化部署靜態(tài)博客的文章就介紹到這了,更多相關drone ci自動化部署博客內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關文章

  • 使用docker compose安裝harbor私有倉庫的詳細教程

    使用docker compose安裝harbor私有倉庫的詳細教程

    harbor鏡像倉庫是由VMware開源的一款企業(yè)級鏡像倉庫,它包括權限管理(RBAC)、LDAP、日志審核、管理界面、自我注冊、鏡像復制等諸多功能,本文給大家介紹docker compose安裝harbor的方法,需要的朋友參考下吧
    2021-06-06
  • docker容器之間通訊-network解讀

    docker容器之間通訊-network解讀

    這篇文章主要介紹了docker容器之間通訊-network解讀,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • docker 使用CMD或者ENTRYPOINT命令同時啟動多個服務

    docker 使用CMD或者ENTRYPOINT命令同時啟動多個服務

    這篇文章主要介紹了docker 使用CMD或者ENTRYPOINT命令同時啟動多個服務,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 詳解Docker中VLAN網絡模式的配置

    詳解Docker中VLAN網絡模式的配置

    在Docker應用到生產環(huán)境的時候包括了原生Bridge NAT模式、LinuxBridge VLAN模式以及利用第三方的網絡方案這三種,這篇文章給大家詳細介紹了Docker中VLAN網絡模式的配置,有需要的朋友們下面來一起看看吧。
    2016-10-10
  • Docker中部署nginx服務的方案

    Docker中部署nginx服務的方案

    這篇文章主要介紹了Docker中部署nginx服務的方案的相關資料,需要的朋友可以參考下
    2022-11-11
  • 群暉NAS利用Docker容器搭建KMS激活服務器實現(xiàn)激活windows系統(tǒng)和office(操作步驟)

    群暉NAS利用Docker容器搭建KMS激活服務器實現(xiàn)激活windows系統(tǒng)和office(操作步驟)

    本文跟大家分享一下如何利用群暉NAS的Docker容器套件搭建KMS服務器,并演示如何利用我們自己的KMS服務器激活Windows操作系統(tǒng)與Microsoft Office,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 詳解Docker Volume 之權限管理

    詳解Docker Volume 之權限管理

    這篇文章主要介紹了詳解Docker Volume 之權限管理,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • docker下修改mysql配置文件的方法

    docker下修改mysql配置文件的方法

    這篇文章主要介紹了docker下修改mysql配置文件的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-06-06
  • Centos7 安裝部署Kubernetes(k8s)集群實現(xiàn)過程

    Centos7 安裝部署Kubernetes(k8s)集群實現(xiàn)過程

    這篇文章主要為大家介紹了Centos7 安裝部署Kubernetes(k8s)集群實現(xiàn)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Docker中的容器文件拷貝及目錄掛載方式

    Docker中的容器文件拷貝及目錄掛載方式

    這篇文章主要介紹了Docker中的容器文件拷貝及目錄掛載方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論