drone部署
下载镜像
docker pull drone/drone:2.0.2
生成共享密钥
openssl rand -hex 16
运行drone
docker run -td --name=drone \
-p 9080:80 \
-p 9443:443 \
--restart=always \
-v /data/dockerMount/drone:/data \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_SERVER_PROTO=http \
--env=DRONE_SERVER_HOST= {drone的域名或者ip}\
--env=DRONE_GITLAB_SKIP_VERIFY:true \
--env=DRONE_GITLAB_SERVER={gtilab的域名或者ip} \
--env=DRONE_GITLAB_CLIENT_ID={gitlab客户端id} \
--env=DRONE_GITLAB_CLIENT_SECRET={gitlab密钥} \
--env=DRONE_RPC_SECRET={共享密钥} \
drone/drone:2.0.2
运行runner
- 在部署了drone之后还需要runner来运行任务
部署ssh-runner
docker run -d \
-p 9300:3000 \
--restart always \
--name ssh-runner \
-e DRONE_DEBUG=true \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST={drone的域名} \
-e DRONE_RPC_SECRET={共享密钥} \
drone/drone-runner-ssh
部署docker-runner
docker run -d \
--restart always \
--name docker-runner \
-p 9301:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e DRONE_RPC_PROTO=http \
-e DRONE_RPC_HOST={drone的域名}\
-e DRONE_RPC_SECRET={共享密钥} \
-e DRONE_RUNNER_CAPACITY=2 \
-e DRONE_RUNNER_NAME=docker-runner \
drone/drone-runner-docker
.drone.yml
kind: pipeline
type: docker #docker runner来执行
name: maven-build #该通道名称
#指定分支
trigger:
branch:
- dev
#主机挂载位置
volumes:
- name: maven
host:
path: /data/dockerMount/maven/
- name: projects
host:
path: /data/projects
steps:
- name: 项目构建
image: maven:3.8-openjdk-11
volumes:
- name: maven
path: /root/.m2
- name: projects
path: /root/projects
commands:
# sh 命令
---
kind: pipeline
type: ssh #使用ssh通道
name: image-push
#取消git clone代码
clone:
disable: true
#指定在其他通道完成之后之执行本通道
depends_on:
- maven-build
trigger:
branch:
- dev
#要连接的服务器
server:
host: ip地址
user: root
password:
from_secret: 在drone中存的密码
steps:
- name: 构建镜像
commands:
#sh命令