1

我想使用drone.iogogs,以便在我的环境中拥有一些CI 功能。

drone.io ( http://docs.drone.io/ )的文档不是最新的,为了启动它,我不得不挖掘很多东西。

我的docker-compose.yml文件如下:

version: '3'

services:

  drone-server:
    image: drone/drone:latest
    network_mode: "bridge"
    volumes:
      - "/docker/drone:/var/lib/drone/"
    environment:
      - "DRONE_OPEN=true"
      - "DRONE_HOST=XXX"
      - "DRONE_SECRET=XXX"
      - "DRONE_GOGS=true"
      - "DRONE_GOGS_URL=http://gogs:3000"
      - "DRONE_GOGS_GIT_USERNAME=XXX"
      - "DRONE_GOGS_GIT_PASSWORD=XXX"
      - "DRONE_GOGS_PRIVATE_MODE=true"
    external_links:
      - "dedigogs_gogs_1:gogs"

  drone-agent:
    image: drone/agent:latest
    network_mode: "bridge"
    depends_on:
      - drone-server
    links:
      - drone-server
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - "DRONE_SERVER=drone-server:9000"
      - "DRONE_HOST=XXX"
      - "DRONE_SECRET=XXX"
      - "DRONE_GOGS=true"
      - "DRONE_GOGS_URL=http://gogs:3000"
      - "DRONE_GOGS_GIT_USERNAME=XXX"
      - "DRONE_GOGS_GIT_PASSWORD=XXX"
      - "DRONE_GOGS_PRIVATE_MODE=true"
    external_links:
      - "dedigogs_gogs_1:gogs"

dedigogs_gogs_1作为我的gogsdocker 实例)

我可以drone使用我的gogs凭据连接到。

我可以看到我所有的私人存储库,并为drone.io.

但是,在构建提交时,代理(我认为)无法克隆存储库:

+ git init
Initialized empty Git repository in /drone/src/XXX/XXX/XXX/.git/
+ git remote add origin https://XXX/XXX/XXX.git
+ git fetch --no-tags origin +refs/heads/master:
fatal: could not read Username for 'https://XXX': No such device or address
exit status 128

我尝试使用.drone.yml(添加“ clone”部分,使用username, netrc.username, ...),我还尝试使用环境变量,没有任何工作,我无法drone为克隆存储库进行身份验证。

任何想法 ?

4

1 回答 1

1

事情就是这样,我在 gogs 上遇到过类似的问题,由于某种原因,.netrc 文件与用于克隆的 url 不匹配。

尝试使用您在浏览器中访问 Gogs 时使用的完整 url,而不是 docker 网络中的内部主机名

DRONE_GOGS_URL=http://myurl.to.gogs.com:3000
DRONE_GOGS_URL=http://some-ip-address:3000
于 2017-09-08T16:22:33.660 回答