docker - 无法解析主机:git
问题描述
我见过Gogs + Drone getsockopt:连接被拒绝,但我想知道是否发生了变化。
我的 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 后,我可以看到无人机开始执行。但它无法克隆回购:
+ 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-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
推荐阅读
- ios - UIDatepicker 用'---'显示未来年份
- html - 在 iOS 上,Safari:如何防止底层页面/主页滚动但超出覆盖范围。覆盖应该能够滚动
- ios - 将对象保存为用户默认值
- javascript - 当 javascript 提示某些内容时,网页变为空白
- java - 无法访问 application.properties 文件
- php - Isset 适用于本地服务器,但不适用于实时服务器
- c# - 如何从 WPF 设置 Windows 10 及更高版本的锁屏壁纸?
- php - React native 将屏幕截图图像上传到 PHP 服务器
- jquery - 模态不是函数
- c# - 通过在wpf中单击行选择列表框中的多个复选框