GiteaDroneCi

GiteaDroneCi

以下安裝和操作均為Docker方式

1.安裝gitea

1.安裝gitea

docker run -d --privileged=true --name=gitea -p 10022:22 -p 10080:3000 gitea/gitea

訪問localhost:10080彈出交互安裝頁面

修改項(xiàng)
基礎(chǔ)URL 宿主機(jī)ip:10080
SSH服務(wù)域名 宿主機(jī)ip

其余選項(xiàng)可以默認(rèn),可以自行修改挚币。

2.創(chuàng)建一個(gè)測試項(xiàng)目碍沐,并通過http方式push到倉庫尝抖。

我這里隨便創(chuàng)建了一個(gè)springboot的web項(xiàng)目。

3.生成GiteaOauth

gitea右上角->設(shè)置->應(yīng)用->創(chuàng)建應(yīng)用

客戶端id:5667b0f2-2df0-497d-8c31-37e43f178a26
客戶端秘鑰:heaoKnIbKmGB3QGpE7NR5QLczaYtwlXA5PYweH3kcPp1

重定向到drone的url上

#我這里drone配置的是80端口
http://192.168.31.79/login

生成rpc秘鑰

openssl rand -hex 16 

3.安裝drone

 docker run \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --env=DRONE_GITEA_SERVER=http://192.168.31.79:10080/ \
    --env=DRONE_GITEA_CLIENT_ID=5667b0f2-2df0-497d-8c31-37e43f178a26 \
    --env=DRONE_GITEA_CLIENT_SECRET=heaoKnIbKmGB3QGpE7NR5QLczaYtwlXA5PYweH3kcPp1 \
    --env=DRONE_RPC_SECRET=dd6fed184d56520b5c72ff652f941eb2 \
    --env=DRONE_USER_CREATE=username:root,admin:true \
    --env=DRONE_SERVER_HOST=192.168.31.79 \
    --env=DRONE_SERVER_PROTO=http \
    --publish=80:80 \
    --publish=443:443 \
    --restart=always \
    --detach=true \
    --name=drone \
    drone/drone

端口號之類的可以自己改為沒被占用的即可惑艇,sock必須要掛載膊爪,因?yàn)閐rone需要依賴宿主的docker,可以緩存鏡像等等瘩缆。

key value
DRONE_GITEA_SERVER GiteaServerUrl
DRONE_GITEA_CLIENT_ID 應(yīng)用的客戶端id
DRONE_GITEA_CLIENT_SECRET 應(yīng)用的客戶端秘鑰
DRONE_RPC_SECRET 應(yīng)用的Rpc秘鑰
DRONE_USER_CREATE 管理員用戶名對應(yīng)Gitea的用戶名

參考: https://docs.drone.io/server/provider/gitea/

3.安裝runner

 docker run -d \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -e DRONE_RPC_PROTO=http \
    -e DRONE_RPC_HOST=192.168.31.79 \
    -e DRONE_RPC_SECRET=dd6fed184d56520b5c72ff652f941eb2 \
    -e DRONE_RUNNER_CAPACITY=2 \
    -e DRONE_RUNNER_NAME=drone-runner \
    -p 3000:3000 \
    --restart always \
    --name runner \
    drone/drone-runner-docker

key value
DRONE_RPC_HOST drone的ip
DRONE_GITEA_CLIENT_ID 應(yīng)用的客戶端id
DRONE_RPC_SECRET 應(yīng)用的Rpc秘鑰

參考:https://docs.drone.io/runner/docker/installation/linux/

4.安裝私有鏡像倉庫

docker run -d -e ENV_DOCKER_REGISTRY_HOST=192.168.31.79 -e ENV_DOCKER_REGISTRY_PORT=5000 -p 9000:80 konradkleine/docker-registry-frontend:v2
 #docker.json添加倉庫
  "insecure-registries": [
    "192.168.31.79:5000"
  ]

我這里沒有去持久化,自己使用時(shí)可以修改佃蚜,注意端口號庸娱。

5.配置Dockerfile

在項(xiàng)目的根目錄下創(chuàng)建一個(gè)Dockerfile文件

FROM openjdk:8
RUN ls
ADD /target/*.jar app.jar
ENTRYPOINT [ "sh", "-c", "java -jar /app.jar" ]

6.配置.Drone.yml

在項(xiàng)目的根目錄下創(chuàng)建一個(gè).Drone.yml文件(有個(gè).別忘了)

kind: pipeline
name: run #流水線名稱
type: docker #類型
steps:
  - name: build #步驟名稱
    image: maven:3.6.2-jdk-8 #該步驟使用的鏡像
    commands:
      - mvn clean package -Dmaven.test.skip #鏡像中執(zhí)行的命令
    volumes:
    - name: cache
      path: /root/.m2  #掛載到宿主機(jī)的maven上避免每次都重新下載jar包
    when:
      branch: master #分支
      event: [ push ]  #觸發(fā)事件
  - name: docker
    image: plugins/docker # 構(gòu)建docker鏡像的鏡像
    settings:
      repo: 192.168.31.79:5000/mytest/test #本地鏡像倉庫,我這里搭建的默認(rèn)不需要密碼
      tags: latest #版本
    volumes:
      - name: docker
        path: /var/run/docker.sock #掛載sock (這里好像可以不掛載之前報(bào)錯(cuò)加上的谐算,可以不加試試)
    when:
      branch: master
      event: [ push ]
volumes:
  - name: cache
    host:
      path: /Users/yujian/.m2 #host目錄
  - name: docker
    host:
      path: /var/run/docker.sock #宿主機(jī) docker.sock文件

7.授權(quán)drone

訪問drone的ip即可得到gitea的授權(quán)熟尉,點(diǎn)擊授權(quán)此時(shí)會自動(dòng)添加webhook。


在這里插入圖片描述

8.激活項(xiàng)目

在drone->setting中激活項(xiàng)目并開啟Trusted信任該項(xiàng)目

9.提交代碼觸發(fā)流水線

在這里插入圖片描述

都是綠色則構(gòu)建成功洲脂,這里drone執(zhí)行完畢后會調(diào)用system prune -f清理未啟動(dòng)的鏡像和容器斤儿。。本機(jī)操作需謹(jǐn)慎

10.總結(jié)

drone所有step在一個(gè)工作空間內(nèi),可以直接向下傳遞往果,比如build階段的jar包目錄為

/drone/src/target/SpringBootTestDemo-0.0.1-SNAPSHOT.jar

其他容器使用目錄為./target/SpringBootTestDemo-0.0.1-SNAPSHOT.jar即可獲取

補(bǔ)充:
上述的yaml只提供的交付到鏡像的步驟還可以添加來運(yùn)行一個(gè)容器

  - name: start
    image: plugins/docker
    commands:
      - docker run -d --name test 192.168.31.79:5000/mytest/test
    volumes:
      - name: docker
        path: /var/run/docker.sock
    when:
        branch: master
        event: [ push ]    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末疆液,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棚放,更是在濱河造成了極大的恐慌枚粘,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件飘蚯,死亡現(xiàn)場離奇詭異馍迄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)局骤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門攀圈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人峦甩,你說我怎么就攤上這事赘来。” “怎么了凯傲?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵犬辰,是天一觀的道長。 經(jīng)常有香客問我冰单,道長幌缝,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任诫欠,我火速辦了婚禮涵卵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘荒叼。我一直安慰自己轿偎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布被廓。 她就那樣靜靜地躺著坏晦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嫁乘。 梳的紋絲不亂的頭發(fā)上英遭,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機(jī)與錄音亦渗,去河邊找鬼。 笑死汁尺,一個(gè)胖子當(dāng)著我的面吹牛法精,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼搂蜓,長吁一口氣:“原來是場噩夢啊……” “哼狼荞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起帮碰,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤相味,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后殉挽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丰涉,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年斯碌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了一死。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡傻唾,死狀恐怖投慈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冠骄,我是刑警寧澤伪煤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站凛辣,受9級特大地震影響抱既,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蟀给,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一蝙砌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧跋理,春花似錦择克、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拭卿,卻和暖如春骡湖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背峻厚。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工响蕴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惠桃。 一個(gè)月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓浦夷,卻偏偏與公主長得像辖试,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子劈狐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容