0

我想弄清楚我是否可以在drone.io 的帮助下自动构建我们的小项目。到目前为止,它一直很有希望,但是我似乎无法完成这个简单的步骤。

我的设置是启用了 webhook 的 gogs,并通过无人机 web 界面启用了 repo。Drone 在 2 个 docker 实例中运行。

码头工人-compose.yml:

version: '2'

services:
  drone-server:
    image: drone/drone:0.5
    ports:
      - 8000:8000
    volumes:
      - /opt/docker/drone:/var/lib/drone
      - /path/to/ssh:/key
    environment:
      - DRONE_OPEN=true
      - DRONE_GOGS=true
      - DRONE_GOGS_URL=http://gogs.xx.xx
      - DRONE_GOGS_GIT_USERNAME=user
      - DRONE_GOGS_GIT_PASSWORD=password
      - DRONE_SECRET=key
      - DEPLOY_KEY=@/key/id_rsa
      - DRONE_DEBUG=true

  drone-agent:
    image: drone/drone:0.5
    command: agent
    restart: unless-stopped
    depends_on: [ drone-server ]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - DRONE_SERVER=ws://drone-server:8000/ws/broker
      - DRONE_SECRET=key

我不得不单独安装 cli,因为我无法在 docker 容器中使用它。签署命令:

drone -s http://<drone interface>:8000 -t <token copied from webinterface> sign <repo> --in ".drone.yml" --out ".drone.yml.sig"

然后我继续提交并将这两个文件推送到 repo。无人机调试中不断出现以下错误:

drone-server_1  | time="2017-04-12T10:04:09Z" level=debug msg="cannot verify .drone.yml.sig file. no match"
drone-server_1  | time="2017-04-12T10:04:09Z" level=info ip=172.19.0.1 latency=374.072732ms method=POST path="/hook" status=200 time="2017-04-12T10:04:09Z" user-agent=GogsServer

知道签名出了什么问题吗?

4

1 回答 1

0

谢谢布拉德。

它确实与行尾有关。我使用组合的 windows/linux 环境,所以我想这就是它出错的地方。现在我使用了一个我以前用过的漂亮工具dos2unix

在我成功签署并将 sig 推送到 repo 之后,它会转换为 unix 格式。

于 2017-04-13T05:51:58.463 回答