• docker搭建drone


    以下为docker搭建

    1. 安装服务端

    docker run \
      --volume=/data/drone:/data \
      --env=DRONE_AGENTS_ENABLED=true \
      --env=DRONE_GOGS_SERVER=http://192.168.0.110:3000 \
      --env=DRONE_RPC_SECRET=super-duper-secret \
      --env=DRONE_SERVER_HOST=192.168.0.110:20080 \
      --env=DRONE_SERVER_PROTO=http \
      --env=DRONE_USER_CREATE=root \
      --env=DRONE_GIT_ALWAYS_AUTH=true \
      --env=DRONE_GIT_USERNAME=root \
      --env=DRONE_GIT_PASSWORD=root \
      --publish=20080:80 \
      --restart=always \
      --detach=true \
      --name=drone \
      drone/drone:2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    DRONE_GIT_ALWAYS_AUTH,DRONE_GIT_USERNAME,DRONE_GIT_PASSWORD对于非公开的git项目必须配置,否则拉代码的时候会报错。(需要确保配置的拉取代码的账号密码有权限拉取)
    其它按对应平台配置,此处使用Gogs作为git管理平台。
    启动完成后便可以使用gogs的账号密码进行登录。
    DRONE_USER_CREATE将账号设为管理员。
    DRONE_GOGS_SERVER:gogs的ip地址
    DRONE_SERVER_HOST:drone搭建好后的地址即为你的机器ip+publish中的映射的端口号
    以上需要修改成自己的配置。

    2. 安装Runner

    docker run --detach \
      --env=DRONE_RPC_PROTO=http \
      --env=DRONE_RPC_HOST=192.168.0.110:20080 \
      --env=DRONE_RPC_SECRET=super-duper-secret \
      --publish=23000:3000 \
      --restart always \
      --name runner \
      drone/drone-runner-ssh
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    DRONE_RPC_HOST:上面搭建好的drone的地址
    启动完成后即可。

    3. 配置任务
    在需要的自动构建的项目根目录下创建.drone.yml文件

    kind: pipeline
    type: ssh
    name: shf-admin
    
    server:
      host: 192.168.0.110
      user: ssh账号
      password: ssh密码
    
    clone:
      depth: 1
      disable: false
    
    steps:
      - name: build
        failure: always
        commands:
          - source /etc/profile
          - yarn install
          - yarn run build
      - name: deploy
        when:
          branch:
            - master
        failure: always
        commands:
          - rm -rf /home/cicd/pages/*
          - mv -f dist/* /home/cicd/pages/
    
    
    • 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

    将此文件push后即可进行自动构建。
    (注:需要先在drone web控制台中对项目进行配置)

    4. 可能遇到的问题

    1.xxx: command not found
    原因:drone-runner-ssh默认使用sh执行,并非是bash,所以如果你遇到此问题,可以将sh改成从dash改成bash
    执行

    ls -l `which sh`
    
    • 1

    可以看到,此时sh指向的是dash
    修改

    sudo dpkg-reconfigure dash
    
    • 1

    勾选no
    此时再看

    ls -l `which sh`
    
    • 1

    已经是bash了

  • 相关阅读:
    Java学习笔记——并发编程(一)
    Delta3D(9)教程:添加消息发送和可激活体
    【容器化】Kubernetes(k8s)
    零基础自学javase黑马课程第八天
    HyperBDR云容灾深度解析二:自研Boot in Cloud技术,实现高度自动化云容灾
    Linux Top 详细介绍,包含task排序
    攻防世界WEB练习-inget
    求一份网页设计结课大作业,要求用到html,css,javascript,的知识
    Hbase(二)进阶
    Web 基础概念
  • 原文地址:https://blog.csdn.net/gjy11223344/article/details/125429806