标签 drone 下的文章

DroneCI启用privileged

有一个构建任务,需要把squash格式的镜像挂载使用,但是在drone里面一直报错。在自己的ubuntu 虚拟机测试可以。然后就手动在docker内测试,发现mount确实无法挂载这个镜像。提示如下

mount failed: Unknown error -1

这里需要给docker添加'--privileged'就可以了。查询drone的相关文档,并询问了相关开发者,才知道如何在drone中开启privileged特性。

  1. drone的服务需要配置DRONE_ADMIN环境变量,值是Gogs的用户名,以','隔开
services:
    drone-server:
        image: drone/drone:latest
        ports:
            - 8000:8000
        volumes:
            - /var/lib/drone:/var/lib/drone/
        restart: always
        environment:
            - DRONE_ADMIN=admin-dev,test
            - DRONE_OPEN=true
            - DRONE_HOST=http://192.168.2.12:8000
            - DRONE_GOGS=true
            - DRONE_GOGS_URL=http://192.168.2.12:3000
            - DRONE_SECRET="Bearer"
            - DRONE_GOGS_SKIP_VERIFY=true
  1. 在drone项目的设置参数中启用'Trusted'开关
  2. 添加'privileged: true'到drone.yml文件
workspace:
    path: /dronebuild
pipeline:
    build:
        image: ubuntu:latest
        privileged: true
        commands:
            - /bin/bash

Drone CI编译kernel出现multiple target patterns错误

Tags: linux,drone

使用Drone 0.7版本的构建Linux代码时,出现以下错误:

make distclean
Makefile:114: *** multiple target patterns.  Stop.

测试查找原因后,才知道是由于目录层级太深出现的错误。向Drone的社群询问后,得知可以使用Drone的workspace功能来解决问题。workspace就是定义repo的工作目录。这是可以指定新的路径,这样就可以编译Linux代码了。

workspace:
    path: /dronebuild

这样写了后,在container中运行的路行就是/drone/dronebuild目录了。

Drone CI 0.7版本使用docker-compose搭建问题

新版本的Drone CI分离成两个服务,drone和agent。agent依赖于drone。根据手册建议,新版使用docker-compose部署更加文便,但我的一直提示异常。

drone-agent_1   | rpc: error re-connecting: websocket: bad handshake
drone-server_1  | Unable to connect agent. Invalid authorization token "Bearer" does not match ""

细看文档之后才明白是DRONE_SECRET变量设置有问题,这个在drone和agent中要设置成一样的,两个服务才互相连接。然后使用docker-compose启用就可以访问了。

docker-compose -f drone-docker.yml -d up

下面是drone-docker.ymk文件的内容,供参考:

version: '2'

services:
    drone-server:
        image: drone/drone:latest
        ports:
            - 8000:8000
        volumes:
            - /var/lib/drone:/var/lib/drone/
        restart: always
        environment:
            - DRONE_OPEN=true
            - DRONE_HOST=http://192.168.2.12:8000
            - DRONE_GOGS=true
            - DRONE_GOGS_URL=http://192.168.2.12:3000
            - DRONE_SECRET="123456"
            - DRONE_GOGS_SKIP_VERIFY=true

    drone-agent:
        image: drone/drone:latest
        command: agent
        restart: always
        depends_on:
            - drone-server
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
        environment:
            - DRONE_SERVER=ws://drone-server:8000/ws/broker
            - DRONE_SECRET="123456"
            - DOCKER_API_VERSION=1.22

最新文章

最近回复

  • Blackrose: 感谢拍砖!嗯,那句话...
  • aa: “Raspberry...
  • Blackrose: 外部只是帮你把芯片启...
  • : 内部时钟比外部的频率...
  • Blackrose: 你这评论比正文更有内容么
  • 7hao: CR+LF ...
  • Blackrose: 可以是你更新软件源后...
  • sxk: 博主,我的系统是ub...
  • Blackrose: 你深得精髓么
  • qihao: 这篇文章的简单总结就...

分类

归档

其它