docker部署drone

drone部署

下载镜像

docker pull drone/drone:2.0.2

生成共享密钥

  • 使用openssl生成密钥
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的进程
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命令

你可能感兴趣的:(docker部署drone)