自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

告別 Jenkins ?這套輕量級自動(dòng)化部署方案,讓你輕松上車!

開發(fā)
Drone 采用輕量級的基于 Docker 的架構(gòu),易于部署和管理,重點(diǎn)是免費(fèi)。Drone 和 Jenkins 都是優(yōu)秀的 CI/CD 工具,選擇哪一款取決于你的項(xiàng)目需求和團(tuán)隊(duì)規(guī)模。

Drone 介紹

Drone 是一款基于 Docker 的輕量級開源 CI/CD 工具,旨在幫助開發(fā)人員自動(dòng)化構(gòu)建、測試和部署應(yīng)用程序。它擁有簡單易用的配置方式,并且支持多種流行的源代碼管理平臺(tái)和容器平臺(tái)。

前期準(zhǔn)備

  • 一臺(tái)服務(wù)器或本地虛擬機(jī)
  • 服務(wù)器已安裝 Docker、Drone
  • Gitee 倉庫
  • SpringBoot 測試項(xiàng)目

配置 Gitee

登錄 Gitee ,點(diǎn)擊頭像,找到設(shè)置,頁面左側(cè)點(diǎn)擊 數(shù)據(jù)管理-第三方應(yīng)用,創(chuàng)建應(yīng)用,具體配置如下:

截圖來自 Drone 官網(wǎng)

配置 Drone 項(xiàng)目

登錄服務(wù)器中部署好的Drone web 端配置項(xiàng)目

  • 找到我們的 Java 項(xiàng)目,在 Settings 界面中開啟 Trusted

  • 在Settings界面中點(diǎn)擊左側(cè)的Secrets,創(chuàng)建秘鑰ssh_host、ssh_user、ssh_password

配置 SpringBoot 項(xiàng)目

在 SpringBoot 項(xiàng)目根目錄中創(chuàng)建三個(gè)文件.drone.yml、Dockerfile、run.sh

1.編寫 .drone.yml 配置文件

當(dāng)master分支有提交代碼時(shí),就會(huì)觸發(fā) Drone 自動(dòng)部署項(xiàng)目

kind: pipeline
name: default

volumes:
  - name: cache
    host:
      path: /var/lib/cache
  - name: muqing-api
    host:
      path: /mydata/muqing-api

steps:
  - name: build
    image: maven:3.6.3-openjdk-17
    pull: if-not-exists
    volumes:
      - name: cache
        path: /root/.m2
      - name: muqing-api
        path: /muqing-api
    commands:
      # 開始打包maven工程
      - mvn clean package -Dmaven.test.skip=true
      # 將打包后的文件復(fù)制到宿主機(jī)映射目錄
      - cp run.sh /muqing-api
      - cp muqing-admin/target/*.jar /muqing-api
      - cp muqing-admin/Dockerfile /muqing-api
  # 2.使用ssh訪問主機(jī)制作鏡像并運(yùn)行
  - name: ssh commands
    pull: if-not-exists
    image: appleboy/drone-ssh
    settings:
      host: 
        # 從drone倉庫配置中秘密空間讀取服務(wù)器IP
        from_secret: ssh_host
      username: 
        # 從drone倉庫配置中秘密空間讀取用戶
        from_secret: ssh_user
      password:
        # 從drone倉庫配置中秘密空間讀取密碼
        from_secret: ssh_password
      port: 22
      script:
        - cd /mydata/muqing-api
        - chmod +x run.sh
        - ./run.sh
# drone執(zhí)行觸發(fā)器
trigger:
  branch:
    - master

2.編寫 Dockerfile 文件

FROM openjdk:17

ADD muqing-admin-0.0.1.jar /home/app.jar

EXPOSE 8080

CMD ["java", "-jar", "/home/app.jar"]

3.編寫 run.sh 腳本

#!/bin/bash
# 應(yīng)用組名
group_name='java'
# 應(yīng)用名稱
app_name='muqing-api'
echo '---------- 停止舊容器 ----------'
docker stop ${app_name}
echo '---------- 刪除舊容器 ----------'
docker rm ${app_name}
echo '---------- 刪除舊鏡像 ----------'
docker rmi ${group_name}/${app_name}
echo '---------- 打包新鏡像 ----------'
docker build -t ${group_name}/${app_name} .
echo '---------- 刪除無用鏡像 ----------'
docker image prune -f
echo '---------- 創(chuàng)建新容器 ----------'
docker run -p 8080:8080 --name ${app_name} \
-e TZ="Asia/Shanghai" \
-d ${group_name}/${app_name}

部署結(jié)果

對應(yīng).drone.yml中配置的流水線步驟:

(1) 從 Git 倉庫中拉取項(xiàng)目代碼

(2) Maven 打包 Java 項(xiàng)目

(3) Docker 部署

總結(jié)

Drone 是一款功能強(qiáng)大、易于使用的 CI/CD 工具,提供了豐富的插件,可以擴(kuò)展其功能。Drone 采用輕量級的基于 Docker 的架構(gòu),易于部署和管理,重點(diǎn)是免費(fèi)。Drone 和 Jenkins 都是優(yōu)秀的 CI/CD 工具,選擇哪一款取決于你的項(xiàng)目需求和團(tuán)隊(duì)規(guī)模。如果您追求簡單易用,Drone 是一個(gè)不錯(cuò)的選擇。

責(zé)任編輯:趙寧寧 來源: 源話編程
相關(guān)推薦

2015-08-17 14:13:52

Ansible輕量自動(dòng)化部署工具

2024-12-16 13:00:00

JavaELK開發(fā)

2014-03-11 11:10:10

PowerShell自動(dòng)化腳本

2025-03-18 14:33:14

2015-02-04 09:17:38

亞馬遜AWS云自動(dòng)化

2024-11-28 09:26:46

網(wǎng)絡(luò)網(wǎng)絡(luò)設(shè)備

2016-10-14 16:35:39

2024-06-28 08:21:20

前端自動(dòng)化部署

2023-04-27 07:57:52

AutoIt自動(dòng)化工具

2023-09-04 09:42:43

2025-02-13 07:58:21

CI/CDJenkinsGitLab

2018-02-10 18:35:09

LinuxAnsible系統(tǒng)管理

2019-07-12 17:28:08

付款費(fèi)用SAP Concur

2021-05-07 08:03:15

微服務(wù)JenkinsGitHub項(xiàng)目

2021-08-04 08:27:00

VueReact自動(dòng)化部署

2022-10-14 14:58:02

自動(dòng)化架構(gòu)

2020-04-22 17:09:04

Python自動(dòng)化開發(fā)

2019-08-27 20:00:23

2024-01-24 18:50:21

WebFTP服務(wù)器

2018-03-02 06:12:22

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號