【问题标题】:Could not resolve host: git无法解析主机:git
【发布时间】:2018-09-28 14:48:35
【问题描述】:

我见过Gogs + Drone getsockopt: connection refused,但我想知道是否发生了变化。

我的 docker-compose.yml

  git:
    image: gogs/gogs
    ports:
      - '8300:3000'
      - '443:443'
      - '8322:22'
    volumes:
      - 'gogs-data:/data'
    depends_on:
      - database
    labels:
      - 'traefik.backend=git'
      - 'traefik.port=3000'
      - 'traefik.frontend.rule=Host:git.drone.localhost'

  drone-server:
    image: drone/drone:0.8

    ports:
      - 8000
      - 9000
    volumes:
      - drone-server-data:/var/lib/drone/
    environment:
      - DRONE_OPEN=true
      - DRONE_HOST=http://drone-server:8000
      - DRONE_SECRET=SECRET
      - DRONE_GOGS=true
      - DRONE_GOGS_URL=http://git:3000
      - DRONE_GOGS_SKIP_VERIFY=true

将我在 gogs 中的 repo 的 webhook 更改为 http://droner-server:8000 后,我可以看到无人机开始执行。但它无法克隆 repo:

+ git remote add origin http://git:3000/gituser/repo.git    0s
+ git fetch --no-tags origin +refs/heads/g2:    0s
fatal: unable to access 'http://git:3000/gituser/repo.git/': Could not resolve host: git

【问题讨论】:

    标签: docker docker-compose drone.io gogs


    【解决方案1】:
    1. 不要忘记顶部的版本标签
    2. docker-compose 文件中的容器不能访问其他容器的端口,除非它们是同一个网络。 git 容器的 3000 端口是 gogs 监听的地方,但它映射到主机上的 8300 端口。您可以像这样添加桥接网络:

    docker-compose.yaml

        version: '3'
        services:
          git:
            image: gogs/gogs
            ports:
              - '8300:3000'
              - '443:443'
              - '8322:22'
            volumes:
              - 'gogs-data:/data'
            networks:
              - my-net
            depends_on:
              - database
            labels:
              - 'traefik.backend=git'
              - 'traefik.port=3000'
              - 'traefik.frontend.rule=Host:git.drone.localhost'
          drone-server:
            image: drone/drone:0.8
            ports:
              - 8000
              - 9000
            volumes:
              - drone-server-data:/var/lib/drone/
            networks:
              - my-net
            environment:
              - DRONE_OPEN=true
              - DRONE_HOST=http://drone-server:8000
              - DRONE_SECRET=SECRET
              - DRONE_GOGS=true
              - DRONE_GOGS_URL=http://git:3000
              - DRONE_GOGS_SKIP_VERIFY=true
        networks:
          my-net:
            driver: bridge
    

    【讨论】:

    • V3 需要一个服务部分。
    • ...并且会自动为它启动的容器创建一个网络。 (如果它是 V1 docker-compose.yml 文件,但问题不包括整个文件,则可能会出现原始问题。)
    • 道歉。我真的应该发布完整的文件。这是一个版本:'2'
    • 第二个问题,我没有发布drone-agent部分。这实际上是提供错误消息的服务。更新了原帖
    猜你喜欢
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2011-04-30
    • 2017-03-26
    • 2013-02-06
    • 1970-01-01
    • 2015-02-27
    相关资源
    最近更新 更多