搭建gitea+drone完成小團(tuán)隊(duì)的CD/CI

前言

由于目前公司使用了gitlab做代碼管理,但在環(huán)境部署上是用了rancher1.6。
其實(shí)也就是是gitlab+rancher+docker+drone進(jìn)行持續(xù)集成
但這套是運(yùn)維在用。
作為公司的一個(gè)小透明當(dāng)然是沒(méi)法用的。
但我很仰慕新技術(shù)啊,所以。自己動(dòng)手,豐衣足食。

搭建gitea

之所以選擇gitea,是因?yàn)檩p量級(jí)而且滿足條件了。
看了官網(wǎng)的文檔,非常詳細(xì)。
有興趣的移步
https://docs.gitea.io/zh-cn/install-with-docker/
官網(wǎng)的一個(gè)例子就已經(jīng)足夠了
docker run -d --name=gitea -p 10022:22 -p 10080:3000 -v /var/lib/gitea:/data gitea/gitea:latest
運(yùn)行起來(lái)后。直接訪問(wèn)IP:10080即可
這邊會(huì)有個(gè)安裝過(guò)程,非常簡(jiǎn)單易懂就不細(xì)說(shuō)了。
我用的是本身的MySQL。

我這邊是改了1280的端口訪問(wèn)的!

搭建drone

我開(kāi)始的時(shí)候看drone的文檔覺(jué)得好像沒(méi)網(wǎng)上說(shuō)的那么差
但是我后來(lái)一實(shí)踐,,都是坑。附上官網(wǎng)文檔地址https://docs.drone.io/
直接用官網(wǎng)的其實(shí)也可以,就是怎么也搞不到跟gitea一起
然后吧,我就一起安裝算了,直接用docker-compose

version: "3.3"
services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      TZ: Asia/Shanghai
    volumes:
      - /var/lib/gitea:/data
    restart: always
    networks:
      - dronenet
    ports:
      - "10022:22"
      - "1280:3000"

  drone-server:
    image: drone/drone:1.0.0-rc.5
    container_name: drone-server
    ports:
      - "1380:80"
      - "8000:8000"
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dnmp/drone/:/var/lib/drone/:rw
    restart: always
    environment:
      - DRONE_GITEA_SERVER=http://172.16.8.185:1280
      - DRONE_DEBUG=true
      - DRONE_GIT_ALWAYS_AUTH=false
      - DRONE_RUNNER_CAPACITY=2
      - DRONE_SERVER_HOST=172.16.8.185
      - DRONE_SERVER_PROTO=http
      - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42
      - DRONE_TLS_AUTOCERT=false
      - DRONE_USER_CREATE=username:wsyceshi002,admin:true
      - TZ=Asia/Shanghai
    restart: always
    networks:
      - dronenet

  drone-agent:
    image: drone/agent:latest
    container_name: drone-agent
    command: agent
    restart: always
    depends_on:
      - drone-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_SERVER=http://172.16.8.185:9000
      - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42
      - DRONE_DEBUG=true
      - DRONE_LOGS_DEBUG=true
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_NOCOLOR=false
      - TZ=Asia/Shanghai
    restart: always
    networks:
      - dronenet

networks:
  dronenet:

總結(jié)犯過(guò)的錯(cuò)誤和坑

yaml 格式的文件后綴是 yml (我智障)
drone-server 一定要設(shè)置一個(gè)管理員
drone-server 中的變量 DRONE_SERVER_PROTO 和 DRONE_SERVER_HOST決定了你倉(cāng)庫(kù)中 webhook 的地址,如果你的域名做了 http to https ,而且你的DRONE_SERVER_PROTOhttp,將會(huì)產(chǎn)生301重定向,methodpost 轉(zhuǎn)成 get,會(huì)發(fā)生error 405
drone 是用GO語(yǔ)言開(kāi)發(fā)的,drone 使用的http 包,不支持沒(méi)寫(xiě)協(xié)議的 url,例如 dronetest.yiranzai.top 不能被識(shí)別,要寫(xiě)成 http(s)://dronetest.yiranzai.top
建議測(cè)試階段打開(kāi)debug,方便部署和調(diào)試

例子運(yùn)行

根據(jù)以上的例子
https://juejin.im/post/5c81f3e6f265da2d8f4767a1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容