install
git clone https://github.com/wpjscc/gogs-drone
sudo docker-compose up
訪問
gogs 127.0.0.1:3000
drone 127.0.0.1:8000
賬號密碼通用
安裝 exec-pipes
下面是 linux的可以直接用
mkdir /etc/drone-runner-exec
mkdir /var/log/drone-runner-exec
vi /etc/drone-runner-exec/config
DRONE_RPC_PROTO=http
DRONE_RPC_HOST=127.0.0.1:8000
DRONE_RPC_SECRET=gjO9kVnS7PdixaGF
DRONE_LOG_FILE=/var/log/drone-runner-exec/log.txt
./drone-runner-exec service install
./drone-runner-exec service start
# 驗證安裝成功
cat /var/log/drone-runner-exec/log.txt
新建一個倉庫
可以參考 github.com/wpjscc/gogs-drone-nginx
裡面是一個很簡單的例子,部署了一個nginx
點選同步
下面會出現一個剛新建的倉庫
點選進入
開啟這個專案
接下來進入到gogs的管理web鉤子
,那裡會出現一個連結(剛上方點選開啟後會這個連結會自動同步到這裡),點選那個連結
點選測試推送,就可以在drone裡看到一個任務在執行了
執行成功後
就可以看到nginx的歡迎頁面了
done
配置檔案說明
---
kind: pipeline
type: exec
name: default
platform:
os: linux
arch: amd64
steps:
- name: build
commands:
- docker run -d -p 8080:80 nginx
其中的
docker run -d -p 8080:80 nginx
可以換成任何你想要的命令,最終會執行宿主主機上。
方案分享
我的方案是這樣的。
我本地有一臺閒置的電腦,除了上方的軟體外,還安裝了
- php-cli
- deployer
- openvpn
我的配置檔案是這樣的.drone.yml
---
kind: pipeline
type: exec
name: default
platform:
os: linux
arch: amd64
steps:
- name: build
commands:
- dep deploy -vv
根目錄會有一個deployer.php檔案,.drone.yml就不用動了,只需在deploer.php中寫部署邏輯即可。
我在 deployer.php 裡實現了打包docker鏡象,然後釋出到k8s中。也可以手動執行釋出,不依賴於自動打包環境
dep deploy -vvv
openvpn
用於遠端訪問。
gogs,我只是用它中轉到drone,實際程式碼還是儲存在gitee或github中,可以配置下.git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = 倉庫1
url = 倉庫2
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
這樣就可以觸發drone構建了
本作品採用《CC 協議》,轉載必須註明作者和本文連結