【发布时间】:2017-06-03 02:13:17
【问题描述】:
我正在研究 CI 技术,所以我想我会使用 Docker compose 在本地使用 Gitlab 设置 Drone。这是 docker-compose.yml:
version: "2"
services:
example_gitlab:
image: gitlab/gitlab-ce:latest
volumes:
- ./new-gitlab/srv/gitlab/config:/etc/gitlab
- ./new-gitlab/srv/gitlab/logs:/var/log/gitlab
- ./new-gitlab/srv/gitlab/data:/var/opt/gitlab
ports:
- "4443:443"
- "8000:80"
- "2222:22"
example_drone:
build: ./drone
volumes:
- /var/lib/drone/
- /var/run/docker.sock:/var/run/docker.sock
- ./drone/sqlite/drone.sqlite:/var/lib/drone/drone.sqlite
environment:
- DRONE_GITLAB=true
- DRONE_GITLAB_URL=http://0.0.0.0:8000
- DRONE_GITLAB_CLIENT=4b5292ffbe30e93713b57853c43194aa63d50c176516c8ffaa8b213f1bb1555b
- DRONE_GITLAB_SECRET=6088c59102511a418154197d415762a8768e0e2d6c9ad4bb9013f48d1df3b226
ports:
- "8080:8080"
应用程序启动正常,我在 gitlab 中使用以下设置设置了一个应用程序:
Name: Drone
Redirect URI: http://0.0.0.0:8080/authorize
然后我将 id 和 secret 添加到无人机环境中。这一切都很好。但是,当我尝试从无人机登录 gitlab 时,我得到:
发生错误
包含的重定向 URI 无效。
不知道为什么?
【问题讨论】:
-
首先跳出来的是drone默认运行在8000端口。因此,除非您运行的是 Drone 的自定义版本,否则我希望无人机可以在 8000 而不是 8080 上运行
-
跳出来的第二件事是重定向 URI 是
http://0.0.0.0/authorize,但是你在端口 8080 上暴露了无人机。所以重定向 URI 因此需要是http://0.0.0.0:8080/authorize我相信,因为 GitLab 正在重定向用户返回 Drone -
您可能要考虑的第三件事是,drone 和 gitlab 将需要能够通过 REST API 相互通信。使用 0.0.0.0 是不可能的,因为 0.0.0.0 总是指单个容器。因此,如果无人机尝试使用 0.0.0.0:8000 访问 gitlab,它将指向无人机容器,而不是 gitlab 容器。因此,也建议使用 DNS 或真实 IP 地址。还建议将它们视为单独的应用程序(而不是在单个 docker-compose 中组合)。
标签: docker gitlab docker-compose drone drone.io