当前位置:   article > 正文

【CI】Docker-compose快速搭建Gitee+Drone CI流水线_docker-compose+gitea+drone

docker-compose+gitea+drone

一、部署docker和docker-compose

https://www.runoob.com/docker/centos-docker-install.html
https://docs.docker.com/engine/install/centos/

二、Gitee账号创建第三方应用授权

在这里插入图片描述

注意服务端口,若未在80端口,需要单独写明

三、部署Drone CI

首先需要将对外服务端口在防火墙放行,若使用云平台则还需要把对应端口加入到网络安全组

# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

Drone CI通过容器部署特别方便,docker-compose.yml配置参考drone-server和drone-runner-docker官方配置:

version: '3'
services:
  drone-server:
    restart: always  ## 容器自动重启
    image: drone/drone:2
    container_name: drone-server-cloudnative
    networks:  ## 使用自定义网络,也可以不写
      - drone-net-cloudnative
    ports:
      - "9901:80"  ## 映射到宿主机的端口
    volumes:
      - ./data:/var/lib/drone:rw
    environment:
      - DRONE_GITEE_CLIENT_ID=exxxx  ## gitee中生成的CLIENT ID
      - DRONE_GITEE_CLIENT_SECRET=cxxxx  ## gitee中生成的SECRET
      - DRONE_SERVER_HOST=ip:9901  ## 端口需要和映射至宿主机的一致
      - DRONE_SERVER_PROTO=http 
      - DRONE_RPC_SECRET=c64bab058885900124d31250b6780307  ## openssl rand -hex 16 自动生成
      - DRONE_USER_CREATE=username:xxxx,admin:true  ## gitee中的用户名
      - TZ=Asia/Shanghai
      #- DRONE_LOGS_DEBUG=true  ## 日志调试开关
      #- DRONE_LOGS_TRACE=true  ## 日志调试开关
      - DRONE_LOGS_TEXT=true
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_COLOR=true
  drone-runner-docker:
    restart: always  ## 容器自动重启
    image: drone/drone-runner-docker:1
    container_name: drone-runner-docker-cloudnative
    networks:
      - drone-net-cloudnative
    ports:
      - "9902:3000"  ## 映射到宿主机的端口,用于提供web页面,显示任务执行情况,可不映射
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=drone-server-cloudnative
      - DRONE_RPC_SECRET=c64bab058885900124d31250b6780307  ## 与server服务中保持一致
      - DRONE_RUNNER_NAME=docker-worker
      - DRONE_RUNNER_CAPACITY=2
      - TZ=Asia/Shanghai 
      - DRONE_DEBUG=true
      #- DRONE_LOGS_DEBUG=true
      #- DRONE_LOGS_TRACE=true
      #- DRONE_UI_USERNAME=admin   ## runner的web页面用户信息
      #- DRONE_UI_PASSWORD=password 
    depends_on:
      - drone-server

networks:   ## 可以不自定义
  drone-net-cloudnative:
    driver: bridge
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

运行后观察会发现时区配置未生效,是因为alpine镜像中没有Asia/Shanghai时区文件,需要进入到容器后,安装一下时区文件包,

sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories ## 使用国内仓库镜像
apk add --no-cache tzdata \
    && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \  ## 若添加TZ参数,则可不执行
    && echo "Asia/Shanghai" > /etc/timezone \   ## 若添加TZ参数,则可不执行
    &&rm -rf /var/cache/apk/* /tmp/* /var/tmp/* $HOME/.cache ## 清除缓存
  • 1
  • 2
  • 3
  • 4
  • 5

四、初始化项目

访问Drone CI服务,自动跳转到Gitee授权,登录后,激活对应项目,编写drone.yml即可
参考:https://docs.drone.io/pipeline/docker/overview/

五、注意事项

drone/drone镜像最好选择最新的版本,旧版本对gitee的支持不完整,建议是2.12之后的版本。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号