Drone与GitLab结合实现自动化部署

Drone与gitlab结合实现自动化部署

GitLab设置

在gitlab中注册一个账号,此账号用来对接drone,用此账号登录gitlab后,点击头像下拉里的设置,按下面截图操作

image.png
image.png

点击Applications后, 右边Name框输入一个名字,Redirect URI 为后面安装drone服务的登录地址,格式:http://ip:port/login,ip和端口根据实际情况设置,我这里是http://192.168.31.102:3080

保存后

image.png

这里的信息把上图的信息记录下来,后面安装drone会用到

Application: drone

Application ID 0aa1809a0bdbf1f826acfd112b9d489f074fb9ca633c2e78af9737cba00b76fa
Secret 9e84d46335ff0bdd26656d6b7257bc5cb3d81a78904a2f11e7f026f009012ada
Callback URL http://192.168.31.102:3080/login

用docker来安装drone

drone有个Server和Runner的概念,我们先来理解下:

  • Server:为Drone的管理提供了Web页面,用于管理从Git上获取的仓库中的流水线任务。
  • Runner:一个单独的守护进程,会轮询Server,获取需要执行的流水线任务,之后执行。
#拉取镜像
docker pull drone/drone
docker pull drone/drone-runner-docker

#运行
docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_AGENTS_ENABLED=true   \
  --env=DRONE_GITLAB_SERVER=http://192.168.31.103  \
  --env=DRONE_GITLAB_CLIENT_ID=0aa1809a0bdbf1f826acfd112b9d489f074fb9ca633c2e78af9737cba00b76fa \
  --env=DRONE_GITLAB_CLIENT_SECRET=9e84d46335ff0bdd26656d6b7257bc5cb3d81a78904a2f11e7f026f009012ada \
  --env=DRONE_SERVER_HOST=192.168.31.102:3080 \
  --env=DRONE_SERVER_PROTO=http \
  --env=DRONE_TLS_AUTOCERT=false \
  --env=DRONE_LOGS_DEBUG=true \
  -e DRONE_RPC_SECRET=4f3b7f51e3dd678c08cf2d0675c66760 \
  --env=DRONE_USER_CREATE=username:flynn,admin:true \
  -e TZ="Asia/Shanghai" \
  --publish=3080:80 --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone
  
docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST=192.168.31.102:3080 \
-e DRONE_RPC_SECRET=4f3b7f51e3dd678c08cf2d0675c66760 \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=${HOSTNAME} \
-e TZ="Asia/Shanghai" \
-p 3000:3000 \
--restart always \
--name runner \
drone/drone-runner-docker

启动服务server和runner服务是注意:

DRONE_RPC_SECRET要一致

DRONE_SERVER_HOST和DRONE_RPC_HOST为droen-server对外访问地址,格式ip:port,ip和port都是宿主机的

你可能感兴趣的:(Drone与GitLab结合实现自动化部署)