CI/CD

Gogs+Drone搭建教程

2021-06-25  本文已影响0人  霡霂976447044

安装Gogs

此处是二进制安装,安装过程比较简单,出现问题查看日志即可。
注意官方建议使用Gitea

安装Drone

根据drone.io的文档安装

安装Drone Server和Drone Runner

Runner会去实际执行pipline,如果没有安装运行对应的runner,那么不会执行pipline

此处使用版本2.0.2, 2在搭建的时候前端会出现了bug




docker run \
  --volume=/var/lib/drone:/data \
  --env=DRONE_AGENTS_ENABLED=true \
  --env=DRONE_GOGS_SERVER=http://192.168.1.239:3000 \
  --env=DRONE_RPC_SECRET=随机密钥字符串1 \
  --env=DRONE_SERVER_HOST=192.168.1.239 \
  --env=DRONE_SERVER_PROTO=http \
  --env=DRONE_LOGS_TRACE=true \
  --publish=80:80 \
  --publish=443:443 \
  --restart=always \
  --detach=true \
  --name=drone \
  drone/drone:2.0.2


sudo docker run -d \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=192.168.1.239 \
  -e DRONE_RPC_SECRET=随机密钥字符串1 \
  -p 4001:3000 \
  --restart always \
  --name runner-ssh \
  drone/drone-runner-ssh


docker run -d \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DRONE_RPC_PROTO=http \
  -e DRONE_RPC_HOST=192.168.1.239 \
  -e DRONE_RPC_SECRET=随机密钥字符串1 \
  -e DRONE_RUNNER_CAPACITY=2 \
  -e DRONE_RUNNER_NAME=${HOSTNAME} \
  -p 4002:3000 \
  --restart always \
  --name runner-docker \
  drone/drone-runner-docker:1

检查webhooks是否正常

按照以下步骤完成,少一步可能出现错误

在gogs里面检查webhooks 正常,此处的地址会使用DRONE_SERVER_HOST

如果出现错误,尝试修改地址为 drone服务的端口地址

image.png

当不存在.drone.yml文件或者仓库没有在drone激活,测试返回的报文可能是dial tcp连接失败。

重新部署

重新部署只需要停止删除容器 再开启

docker stop drone
docker start drone

如果需要删除记录:

sudo rm /var/lib/drone/database.sqlite

pipline demo

ssh部署Demo 以下格式可能是错误的
ymal的语法可以网上找到说明

https://nodeca.github.io/js-yaml/可以检查yml语法是否正常

    ---
    kind: pipeline
    type: ssh
    name: default

    server:
      host: 192.168.1.239
      user: 用户名
      password:
        from_secret: 密钥名

    steps:
    - name: greeting
      commands:
      - echo hello world

docker demo

    kind: pipeline
    type: docker
    name: default

    steps:
    - name: greeting
      image: alpine
      commands:
      - echo hello
      - echo world

根据tag执行pipline

---
kind: pipeline
type: ssh
name: default

server:
  host: 192.168.1.239
  user: 用户名
  password:
    from_secret: 密钥名

steps:
- name: greeting
  commands:
  - echo hello world
  when:
      event: 
      - tag

上一篇下一篇

猜你喜欢

热点阅读