摘要:最近研究了一下,嘗試將和集合在一起,做服務官方是有說明文檔,支持的,見的安裝文檔我個人安裝過程中碰了一些坑,在這里記下安裝過程。第二步的結果看到正常運行,的服務就初步搭建起來了。至此,,部署安裝的步驟就完成了。
最近研究了一下drone,嘗試將drone1.0和gitea集合在一起,做CI服務;drone官方是有說明文檔,支持gitea的,見drone server的安裝文檔;我個人安裝過程中碰了一些坑,在這里記下安裝過程。
先上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:
我的環境是本地虛擬機centos7,上面IP地址是虛擬機的ip地址。
因為gitea是采用mysql數據庫,所以要啟動一個msyql的容器服務;通過命令docker-compose -f docker-compose.yml build命令先將鏡像構建,其實都是用官方的鏡像,構建這一步是很快的,只是做一個檢查;
然后docker-compose -f docker-compose.yml up -d 將容器運行起來,通過docker ps -a可以查看到容器的狀態:
status這一欄都是正常的,表明服務就可以使用了。
先要配置gitea,通過http://192.168.88.190:10080/進入gitea的web頁面,點擊登錄后,就會出現安裝向導,填寫信息,點擊安裝,等幾分鐘就ok了。安裝的細節稍微要注意填寫的地址和端口,容器內部要填寫3000,對外開放的是10080。記住設置的管理員賬號和密碼,后面drone登錄時也要用到。
然后通過http://192.168.88.190:8080/進入drone的web頁面,如下:
輸入剛才在gitea設置的管理員賬號和密碼,就可以登錄成功,就能看到如下頁面:
剛開始repositories是空的,點擊右上方的sync按鈕,等一分鐘就會自動同步gitea項目過來;同步過來的gitea倉庫,默認狀態是沒開啟的。可以點擊setting頁面,進入設置,如下:
填寫配置文件名字,默認是.drone.yml。點擊save,就會開啟。點擊save的時候,drone會將配置信息同步給你的gitea,gitea項目那邊會響應,然后配置一個webhook,這里有個坑,后面再講。
順利的話,你在gitea項目添加.drone.yal后,就會觸發構建,我在gitea倉庫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的狀態:
第一步是clone代碼,第二步是build,因為我的.drone.yml超級簡單,沒有后面的步驟,只是測試用的。第二步build的結果:
看到正常運行,drone+gitea的服務就初步搭建起來了。后面通過在.drone.yml添加內容和服務,就能達到快速CI/CD的效果。
順便記錄一下踩的坑,剛開始我按照drone集成gitea的安裝文檔,將docker-compose.yml文件寫好,運行docker-compose -f docker-compose.yml up -d 將容器運行起來,通過docker ps -a看到drone-server容器怎樣都起不來,docker logs drone-server也看不出報錯。
在網上找到drone+gitea的貼子,大部分都是drone0.8版本,鑒于此,我將drone的latest改為0.8,安裝0.8版本的配置,重新運行,竟然跑起來了。跑起來后,我就摸索drone的配置和服務,后面發現1.0版本有一些配置跟0.8不一樣,官方有說明,但不明顯。見:
1.0版本跑不起來的配置,是因為drone-server的服務,80端口沒對外開放,據我目前的了解,1.0版本默認是開放80端口,我當時按照0.8版本的端口,配置了"8000:8000"和"9000:9000",就差80端口,所以服務一直不正常。
這里也會涉及到gitea的webhook,上面說的在drone將gitea設置為開啟狀態時,這兩者會交互的,我們看下gitea的webhook:
drone關聯gitea項目時,就會有添加這個,但是端口不是8080,默認是80,就是沒有端口的,類似:
http://192.168.88.190/hook?secret=TzY9LahcXEiQ8eoBDvqPYaw2VN5dJGG2
點擊修改,加上前面設置的端口8080,點擊保存,然后test 一下webhook,就能看到效果。
至此,drone1.0+gitea,docker部署安裝的步驟就完成了。
drone更多細節,還有待繼續研究。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27705.html
摘要:如果還沒有搭建好可以使用的,請先移步到這篇文章進行搭建使用自動部署服務一搭建篇目標通過實現推送代碼后自動部署基于的服務準備工作獲取示例項目或者直接復制以下文件內容獲取示例項目項目文件頁面文件鏡像文件部署文件部署腳本文件頁面文件項目很簡單, 如果還沒有搭建好可以使用 Docker 的 Jenkins,請先移步到這篇文章進行搭建 使用 Jenkins 自動部署 Docker 服務(一、Je...
摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。 之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持...
摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。 之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持...
摘要:下面我想介紹另一種學習思路,自頂向下的學習。是通過虛擬機創建集群,支持多種虛擬機,我這里用的。對內或對外暴露服務。和的控制器,通過配置的規則來管理。三個主要的命令行程序用了啟動集群。需要在所以節點上運行,處理集群內部通訊,類似。 之前就玩過docker,但是一直不知道怎么把容器運用到生產上。構建一個docker鏡像,把他run起來很簡單;難的是容器的部署(CICD),容器的網絡,數據持...
摘要:但此功能目前并不直接可用相關也已經創建。根源在于參數的獲取實現上。省略輸出可以看到,這個名稱可以在這個中重復使用了。比如省略輸出支持將推送至鏡像倉庫中簡而言之就是使用鏡像倉庫同時存儲鏡像和不過這個功能我暫時還沒驗證。 經過了長時間的開發,Helm 3 終于在今天發布了第一個 alpha 版本。本文將簡單介紹 Helm 3 新特性。 移除 Tiller Helm 2 是 C/S 架構,主...
閱讀 3891·2021-11-22 13:54
閱讀 2669·2021-09-30 09:48
閱讀 2353·2021-09-28 09:36
閱讀 3104·2021-09-22 15:26
閱讀 1334·2019-08-30 15:55
閱讀 2505·2019-08-30 15:54
閱讀 1419·2019-08-30 14:17
閱讀 2335·2019-08-28 18:25