首页 > 解决方案 > Drone CI runner 找不到 gitea 服务器

问题描述

我正在尝试使用无人机运行 gitea 服务器。它们目前都托管在同一台 ubuntu 机器上,并且 docker 容器是通过 docker-compose.yml 文件设置的。

启动所有服务时,我在drone runner 服务的日志中收到以下错误:

time="2020-08-12T19:10:42Z" level=error msg="cannot ping the remote server" error="Post http://drone:80/rpc/v2/ping: dial tcp: lookup drone on 127.0.0.11:53: no such host"

http://gitea 和 http://drone 都指向 localhost(通过 /etc/hosts)。遗憾的是,我不明白无人机跑步者如何或为什么找不到服务器。在我所有的 4 个容器上调用“docker container inspect”表明它们都连接到同一个网络(drone_and_gitea_giteanet)。这也是我在 DRONE_RUNNER_NETWORKS 环境变量中设置的网络。

这是我的 docker-compose.yml 文件的外观:

version: "3.8"

# Create named volumes for gitea server, gitea database and drone server
volumes:
  gitea: 
  gitea-db: 
  drone: 

# Create shared network for gitea and drone
networks:
  giteanet:
    external: false
    
services:
  gitea:
    container_name: gitea
    image: gitea/gitea:1 
    #restart: always
    environment:
      - APP_NAME="Automated Student Assessment Tool"
      - USER_UID=1000
      - USER_GID=1000
      - ROOT_URL=http://gitea:3000
      - DB_TYPE=postgres
      - DB_HOST=gitea-db:5432
      - DB_NAME=gitea
      - DB_USER=gitea
      - DB_PASSWD=gitea
    networks:
      - giteanet
    ports:
      - "3000:3000"
      - "222:22"
    volumes:
      - gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - gitea-db

  gitea-db:
    container_name: gitea-db
    image: postgres:9.6 
    #restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    networks:
      - giteanet
    volumes:
      - gitea-db:/var/lib/postgresql/data
    
  drone-server:
    container_name: drone-server
    image: drone/drone:1
    #restart: always
    environment:
      # General server settings
      - DRONE_SERVER_HOST=drone:80
      - DRONE_SERVER_PROTO=http
      - DRONE_RPC_SECRET=topsecret
      
      # Gitea Config
      - DRONE_GITEA_SERVER=http://gitea:3000
      - DRONE_GITEA_CLIENT_ID=<CLIENT ID>
      - DRONE_GITEA_CLIENT_SECRET=<CLIENT SECRET>
      
      # Create Admin User, name should be the same as Gitea Admin user
      - DRONE_USER_CREATE=username:AdminUser,admin:true
      
      # Drone Logs Settings
      - DRONE_LOGS_PRETTY=true
      - DRONE_LOGS_COLOR=true
    networks:
      - giteanet
    ports:
      - "80:80"
    volumes:
      - drone:/data 
    depends_on:
      - gitea   
      
  drone-agent:
    container_name: drone-agent
    image: drone/drone-runner-docker:1 
    #restart: always
    environment:
      - DRONE_RPC_PROTO=http
      - DRONE_RPC_HOST=drone:80
      - DRONE_RPC_SECRET=topsecret
      - DRONE_RUNNER_CAPACITY=1
      - DRONE_RUNNER_NETWORKS=drone_and_gitea_giteanet
    networks:
      - giteanet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - drone-server

如果有人可以看看这个问题并帮助我,那将对我有很大帮助!:)

标签: dockernetworkingcontinuous-integrationdronegitea

解决方案


推荐阅读