以下为docker搭建
1. 安装服务端
docker run \
--volume=/data/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GOGS_SERVER=http://192.168.0.110:3000 \
--env=DRONE_RPC_SECRET=super-duper-secret \
--env=DRONE_SERVER_HOST=192.168.0.110:20080 \
--env=DRONE_SERVER_PROTO=http \
--env=DRONE_USER_CREATE=root \
--env=DRONE_GIT_ALWAYS_AUTH=true \
--env=DRONE_GIT_USERNAME=root \
--env=DRONE_GIT_PASSWORD=root \
--publish=20080:80 \
--restart=always \
--detach=true \
--name=drone \
drone/drone:2
DRONE_GIT_ALWAYS_AUTH,DRONE_GIT_USERNAME,DRONE_GIT_PASSWORD对于非公开的git项目必须配置,否则拉代码的时候会报错。(需要确保配置的拉取代码的账号密码有权限拉取)
其它按对应平台配置,此处使用Gogs作为git管理平台。
启动完成后便可以使用gogs的账号密码进行登录。
DRONE_USER_CREATE将账号设为管理员。
DRONE_GOGS_SERVER:gogs的ip地址
DRONE_SERVER_HOST:drone搭建好后的地址即为你的机器ip+publish中的映射的端口号
以上需要修改成自己的配置。
2. 安装Runner
docker run --detach \
--env=DRONE_RPC_PROTO=http \
--env=DRONE_RPC_HOST=192.168.0.110:20080 \
--env=DRONE_RPC_SECRET=super-duper-secret \
--publish=23000:3000 \
--restart always \
--name runner \
drone/drone-runner-ssh
DRONE_RPC_HOST:上面搭建好的drone的地址
启动完成后即可。
3. 配置任务
在需要的自动构建的项目根目录下创建.drone.yml文件
kind: pipeline
type: ssh
name: shf-admin
server:
host: 192.168.0.110
user: ssh账号
password: ssh密码
clone:
depth: 1
disable: false
steps:
- name: build
failure: always
commands:
- source /etc/profile
- yarn install
- yarn run build
- name: deploy
when:
branch:
- master
failure: always
commands:
- rm -rf /home/cicd/pages/*
- mv -f dist/* /home/cicd/pages/
将此文件push后即可进行自动构建。
(注:需要先在drone web控制台中对项目进行配置)
4. 可能遇到的问题
1.xxx: command not found
原因:drone-runner-ssh默认使用sh执行,并非是bash,所以如果你遇到此问题,可以将sh改成从dash改成bash
执行
ls -l `which sh`
可以看到,此时sh指向的是dash
修改
sudo dpkg-reconfigure dash
勾选no
此时再看
ls -l `which sh`
已经是bash了