出现此问题的原因是Drone.io实例无法解析主机名,从而找不到本地的Gitea。解决这个问题的方法是通过修改Drone.io服务的配置文件,将网络连接设置为主机网络模式。
以下是一个示例Docker Compose文件,展示了如何配置Drone.io服务:
version: '3'
services:
drone:
image: drone/drone:1
ports:
- 80:80
- 443:443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /your/drone/config:/data
restart: always
environment:
- DRONE_SERVER_HOST=drone.yourdomain.com
- DRONE_TLS_AUTOCERT=true
- DRONE_GITEA_SERVER=https://gitea.yourdomain.com
- DRONE_GITEA_CLIENT_ID=${DRONE_GITEA_CLIENT_ID}
- DRONE_GITEA_CLIENT_SECRET=${DRONE_GITEA_CLIENT_SECRET}
- DRONE_RPC_SECRET=${DRONE_RPC_SECRET}
networks:
host:
aliases:
- drone.yourdomain.com
networks:
host:
external:
name: host
在此示例中,我们将Drone.io服务的网络连接设置为“host”模式。这将使Drone.io能够与本地Gitea进行身份验证并解决“lookup no such host”错误。