摘要:最近研究了一下,嘗試將和集合在一起,做服務(wù)官方是有說(shuō)明文檔,支持的,見的安裝文檔我個(gè)人安裝過(guò)程中碰了一些坑,在這里記下安裝過(guò)程。第二步的結(jié)果看到正常運(yùn)行,的服務(wù)就初步搭建起來(lái)了。至此,,部署安裝的步驟就完成了。
最近研究了一下drone,嘗試將drone1.0和gitea集合在一起,做CI服務(wù);drone官方是有說(shuō)明文檔,支持gitea的,見drone server的安裝文檔;我個(gè)人安裝過(guò)程中碰了一些坑,在這里記下安裝過(guò)程。
先上docker-compose.yml文件:
version: "3.6" services: mysql: image: mysql:${MYSQL_VERSION} container_name: mysql ports: - "${MYSQL_HOST_PORT}:3306" volumes: - ${MYSQL_CONF_FILE}:/etc/mysql/conf.d/mysql.cnf:ro - ${MYSQL_DATA_DIR}:/var/lib/mysql/:rw restart: always networks: - default environment: MYSQL_ROOT_PASSWORD: "${MYSQL_ROOT_PASSWORD}" TZ: Asia/Shanghai gitea: image: gitea/gitea:latest container_name: gitea environment: TZ: Asia/Shanghai volumes: - /var/lib/gitea:/data restart: always networks: - default ports: - "10022:22" - "10080:3000" drone-server: image: drone/drone:latest container_name: drone-server ports: - "8080: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://192.168.88.190:10080 #- DRONE_GITEA_SERVER=http://127.0.0.1:10080 - DRONE_GIT_ALWAYS_AUTH=false - DRONE_RUNNER_CAPACITY=2 - DRONE_SERVER_HOST=192.168.88.190 - DRONE_SERVER_PROTO=http - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42 - DRONE_TLS_AUTOCERT=false - DRONE_LOGS_DEBUG=true - TZ=Asia/Shanghai restart: always networks: - default 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://192.168.88.190:9000 - DRONE_RPC_SERVER=drone-server:9000 - DRONE_RPC_SECRET=9c3921e3e748aff725d2e16ef31fbc42 - DRONE_RUNNER_CAPACITY=2 - DRONE_RUNNER_NAME=192.168.88.190 - DRONE_LOGS_DEBUG=true - TZ=Asia/Shanghai restart: always #detach: true networks: - default networks: default:
我的環(huán)境是本地虛擬機(jī)centos7,上面IP地址是虛擬機(jī)的ip地址。
因?yàn)間itea是采用mysql數(shù)據(jù)庫(kù),所以要啟動(dòng)一個(gè)msyql的容器服務(wù);通過(guò)命令docker-compose -f docker-compose.yml build命令先將鏡像構(gòu)建,其實(shí)都是用官方的鏡像,構(gòu)建這一步是很快的,只是做一個(gè)檢查;
然后docker-compose -f docker-compose.yml up -d 將容器運(yùn)行起來(lái),通過(guò)docker ps -a可以查看到容器的狀態(tài):
status這一欄都是正常的,表明服務(wù)就可以使用了。
先要配置gitea,通過(guò)http://192.168.88.190:10080/進(jìn)入gitea的web頁(yè)面,點(diǎn)擊登錄后,就會(huì)出現(xiàn)安裝向?qū)?,填寫信息,點(diǎn)擊安裝,等幾分鐘就ok了。安裝的細(xì)節(jié)稍微要注意填寫的地址和端口,容器內(nèi)部要填寫3000,對(duì)外開放的是10080。記住設(shè)置的管理員賬號(hào)和密碼,后面drone登錄時(shí)也要用到。
然后通過(guò)http://192.168.88.190:8080/進(jìn)入drone的web頁(yè)面,如下:
輸入剛才在gitea設(shè)置的管理員賬號(hào)和密碼,就可以登錄成功,就能看到如下頁(yè)面:
剛開始repositories是空的,點(diǎn)擊右上方的sync按鈕,等一分鐘就會(huì)自動(dòng)同步gitea項(xiàng)目過(guò)來(lái);同步過(guò)來(lái)的gitea倉(cāng)庫(kù),默認(rèn)狀態(tài)是沒開啟的。可以點(diǎn)擊setting頁(yè)面,進(jìn)入設(shè)置,如下:
填寫配置文件名字,默認(rèn)是.drone.yml。點(diǎn)擊save,就會(huì)開啟。點(diǎn)擊save的時(shí)候,drone會(huì)將配置信息同步給你的gitea,gitea項(xiàng)目那邊會(huì)響應(yīng),然后配置一個(gè)webhook,這里有個(gè)坑,后面再講。
順利的話,你在gitea項(xiàng)目添加.drone.yal后,就會(huì)觸發(fā)構(gòu)建,我在gitea倉(cāng)庫(kù)test下建的.drone.yml文件:
workspace: base: /go path: src/web_api pipeline: build: image: golang environment: TZ: Asia/Shanghai commands: - pwd - go env - date - go version - go build - ls -a
提交gitea后,查看drone的狀態(tài):
第一步是clone代碼,第二步是build,因?yàn)槲业?drone.yml超級(jí)簡(jiǎn)單,沒有后面的步驟,只是測(cè)試用的。第二步build的結(jié)果:
看到正常運(yùn)行,drone+gitea的服務(wù)就初步搭建起來(lái)了。后面通過(guò)在.drone.yml添加內(nèi)容和服務(wù),就能達(dá)到快速CI/CD的效果。
順便記錄一下踩的坑,剛開始我按照drone集成gitea的安裝文檔,將docker-compose.yml文件寫好,運(yùn)行docker-compose -f docker-compose.yml up -d 將容器運(yùn)行起來(lái),通過(guò)docker ps -a看到drone-server容器怎樣都起不來(lái),docker logs drone-server也看不出報(bào)錯(cuò)。
在網(wǎng)上找到drone+gitea的貼子,大部分都是drone0.8版本,鑒于此,我將drone的latest改為0.8,安裝0.8版本的配置,重新運(yùn)行,竟然跑起來(lái)了。跑起來(lái)后,我就摸索drone的配置和服務(wù),后面發(fā)現(xiàn)1.0版本有一些配置跟0.8不一樣,官方有說(shuō)明,但不明顯。見:
1.0版本跑不起來(lái)的配置,是因?yàn)閐rone-server的服務(wù),80端口沒對(duì)外開放,據(jù)我目前的了解,1.0版本默認(rèn)是開放80端口,我當(dāng)時(shí)按照0.8版本的端口,配置了"8000:8000"和"9000:9000",就差80端口,所以服務(wù)一直不正常。
這里也會(huì)涉及到gitea的webhook,上面說(shuō)的在drone將gitea設(shè)置為開啟狀態(tài)時(shí),這兩者會(huì)交互的,我們看下gitea的webhook:
drone關(guān)聯(lián)gitea項(xiàng)目時(shí),就會(huì)有添加這個(gè),但是端口不是8080,默認(rèn)是80,就是沒有端口的,類似:
http://192.168.88.190/hook?secret=TzY9LahcXEiQ8eoBDvqPYaw2VN5dJGG2
點(diǎn)擊修改,加上前面設(shè)置的端口8080,點(diǎn)擊保存,然后test 一下webhook,就能看到效果。
至此,drone1.0+gitea,docker部署安裝的步驟就完成了。
drone更多細(xì)節(jié),還有待繼續(xù)研究。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/27705.html
摘要:如果還沒有搭建好可以使用的,請(qǐng)先移步到這篇文章進(jìn)行搭建使用自動(dòng)部署服務(wù)一搭建篇目標(biāo)通過(guò)實(shí)現(xiàn)推送代碼后自動(dòng)部署基于的服務(wù)準(zhǔn)備工作獲取示例項(xiàng)目或者直接復(fù)制以下文件內(nèi)容獲取示例項(xiàng)目項(xiàng)目文件頁(yè)面文件鏡像文件部署文件部署腳本文件頁(yè)面文件項(xiàng)目很簡(jiǎn)單, 如果還沒有搭建好可以使用 Docker 的 Jenkins,請(qǐng)先移步到這篇文章進(jìn)行搭建 使用 Jenkins 自動(dòng)部署 Docker 服務(wù)(一、Je...
摘要:下面我想介紹另一種學(xué)習(xí)思路,自頂向下的學(xué)習(xí)。是通過(guò)虛擬機(jī)創(chuàng)建集群,支持多種虛擬機(jī),我這里用的。對(duì)內(nèi)或?qū)ν獗┞斗?wù)。和的控制器,通過(guò)配置的規(guī)則來(lái)管理。三個(gè)主要的命令行程序用了啟動(dòng)集群。需要在所以節(jié)點(diǎn)上運(yùn)行,處理集群內(nèi)部通訊,類似。 之前就玩過(guò)docker,但是一直不知道怎么把容器運(yùn)用到生產(chǎn)上。構(gòu)建一個(gè)docker鏡像,把他run起來(lái)很簡(jiǎn)單;難的是容器的部署(CICD),容器的網(wǎng)絡(luò),數(shù)據(jù)持...
摘要:下面我想介紹另一種學(xué)習(xí)思路,自頂向下的學(xué)習(xí)。是通過(guò)虛擬機(jī)創(chuàng)建集群,支持多種虛擬機(jī),我這里用的。對(duì)內(nèi)或?qū)ν獗┞斗?wù)。和的控制器,通過(guò)配置的規(guī)則來(lái)管理。三個(gè)主要的命令行程序用了啟動(dòng)集群。需要在所以節(jié)點(diǎn)上運(yùn)行,處理集群內(nèi)部通訊,類似。 之前就玩過(guò)docker,但是一直不知道怎么把容器運(yùn)用到生產(chǎn)上。構(gòu)建一個(gè)docker鏡像,把他run起來(lái)很簡(jiǎn)單;難的是容器的部署(CICD),容器的網(wǎng)絡(luò),數(shù)據(jù)持...
摘要:下面我想介紹另一種學(xué)習(xí)思路,自頂向下的學(xué)習(xí)。是通過(guò)虛擬機(jī)創(chuàng)建集群,支持多種虛擬機(jī),我這里用的。對(duì)內(nèi)或?qū)ν獗┞斗?wù)。和的控制器,通過(guò)配置的規(guī)則來(lái)管理。三個(gè)主要的命令行程序用了啟動(dòng)集群。需要在所以節(jié)點(diǎn)上運(yùn)行,處理集群內(nèi)部通訊,類似。 之前就玩過(guò)docker,但是一直不知道怎么把容器運(yùn)用到生產(chǎn)上。構(gòu)建一個(gè)docker鏡像,把他run起來(lái)很簡(jiǎn)單;難的是容器的部署(CICD),容器的網(wǎng)絡(luò),數(shù)據(jù)持...
摘要:但此功能目前并不直接可用相關(guān)也已經(jīng)創(chuàng)建。根源在于參數(shù)的獲取實(shí)現(xiàn)上。省略輸出可以看到,這個(gè)名稱可以在這個(gè)中重復(fù)使用了。比如省略輸出支持將推送至鏡像倉(cāng)庫(kù)中簡(jiǎn)而言之就是使用鏡像倉(cāng)庫(kù)同時(shí)存儲(chǔ)鏡像和不過(guò)這個(gè)功能我暫時(shí)還沒驗(yàn)證。 經(jīng)過(guò)了長(zhǎng)時(shí)間的開發(fā),Helm 3 終于在今天發(fā)布了第一個(gè) alpha 版本。本文將簡(jiǎn)單介紹 Helm 3 新特性。 移除 Tiller Helm 2 是 C/S 架構(gòu),主...
閱讀 4091·2021-11-22 13:54
閱讀 2837·2021-09-30 09:48
閱讀 2512·2021-09-28 09:36
閱讀 3258·2021-09-22 15:26
閱讀 1522·2019-08-30 15:55
閱讀 2651·2019-08-30 15:54
閱讀 1564·2019-08-30 14:17
閱讀 2479·2019-08-28 18:25