CI&CD
Git代码仓库
Drone
关联GOGS
Jenkins安装
Jenkins问题
JDK及Maven安装
插件安装
创建示例项目
CI流程
Tekton安装
tekton yaml文件
dashboard yaml文件
trigger yaml文件
Tekton使用(demo)
ArgoCD安装
ArgoCD使用
Tekton结合ArgoCD流水线
git-clone.yaml
docker-build.yaml
git-docker-build-pipline.yaml
helm-change-config.yaml
webhook触发器
本文档使用MrDoc发布
返回首页
-
+
Drone
2022年8月1日 15:58
admin
#参考资料 https://blog.csdn.net/wkc1996/article/details/119534170 --- #安装 ##下载Drone和Runner的镜像 #### Drone docker pull drone/drone:2.9.1 #### Drone-Runner docker pull drone-runner-docker:1.8.0 --- #运行Drone docker run \ -v /www/wwwroot/data/docker/drone:/data \ -e DRONE_AGENTS_ENABLED=true \ -e DRONE_GOGS_SERVER=http://192.168.110.135:13000/ \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_SERVER_HOST=192.168.110.135:3080 \ -e DRONE_SERVER_PROTO=http \ -e DRONE_USER_CREATE=username:bao,admin:true \ -e TZ="Asia/Shanghai" \ -p 3080:80 \ --restart=always \ --detach=true \ --name=drone \ drone/drone:2.9.1 ##参数说明 |参数|说明| |--|-- |DRONE_GOGS_SERVER|用于配置Gogs服务地址,可以直接是IP http://192.168.31.114:10080 |DRONE_RPC_SECRET|Drone的共享秘钥,用于验证连接到server的rpc连接,server和runner需要提供同样的秘钥。 |DRONE_SERVER_HOST|用于配置Drone server外部可访问的地址。 |DRONE_SERVER_PROTO|用于配置Drone server外部可访问的协议,必须是http或https。 |DRONE_USER_CREATE|创建一个管理员账号,该账号需要在Gogs中注册好。 --- #运行Drone-Runner docker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DRONE_RPC_PROTO=http \ -e DRONE_RPC_HOST=192.168.110.135:3080 \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_RUNNER_CAPACITY=2 \ -e DRONE_RUNNER_NAME=runner-docker \ -e TZ="Asia/Shanghai" \ -p 3000:3000 \ --restart always \ --name runner-docker \ drone/drone-runner-docker:1.8.0 ##参数说明 |参数|说明| |--|-- |DRONE_RPC_PROTO|用于配置连接到Drone server的协议,必须是http或https。 |DRONE_RPC_HOST|用于配置Drone server的访问地址,runner会连接到server获取流水线任务并执行。 |DRONE_RPC_SECRET|用于配置连接到Drone server的共享秘钥。 |DRONE_RUNNER_CAPACITY|限制runner并发执行的流水线任务数量。 |DRONE_RUNNER_NAME|自定义runner的名称。 --- #访问 ####web访问:http://192.168.110.135:3080 --- ####输入gogs的账号密码 --- ![](/media//202208/2022-08-02150100366265.png) --- ####同步并修改仓库设置 ![](/media//202208/2022-08-02150632298319.png) ![](/media//202208/2022-08-02150720148132.png) --- #测试 ##初始化git仓库 ####初始化空仓 从命令行创建一个新的仓库 mkdir -p /data/drone-demo cd /data/drone-demo touch README.md git init git add README.md git commit -m "first commit" git remote add origin http://192.168.110.135:13000/bao/test2.git git push -u origin master ####从命令行推送已经创建的仓库 git remote add origin http://192.168.110.135:13000/bao/test2.git git push -u origin master --- ##编写.drone.yml kind: pipeline type: docker name: build steps: - name: build image: golang:alpine pull: if-not-exists # always never environment: KEY: VALUE commands: - echo $KEY - pwd - ls - go build app.go - ./app trigger: branch: - master --- ##编写app.go package main import "fmt" func main(){ fmt.Printf("Hello World!\n"); } --- ##提交测试 git add . git commit -m "test drone ci5" git push origin master --- ![](/media//202208/2022-08-02151525292535.png) --- ![](/media//202208/2022-08-02151540610619.png) ---
分享到: