gpt4 book ai didi

docker - 如何配置 gitlab-ci runner 以从正确的 http url 克隆

转载 作者:行者123 更新时间:2023-12-02 19:34:25 28 4
gpt4 key购买 nike

我在单独的容器中运行 gitlab 和 runner。 Gitlab 可在 localhost 端口 80 上访问,我可以使用

http://username:password@172.17.0.1/root/citest.git

172.17.0.1 是我盒子上 docker0 接口(interface)的 ip
但是,在运行任何管道时,我会遇到可怕的“您似乎克隆了一个空存储库”的问题。调查显示,运行者有以下 Remote :
[remote "origin"]
url = http://gitlab-ci-token:jEZ_WtWKR4LaP63Qrk_E@b4b32c3cc3e7/root/citest.git

b4b32c3cc3e7 是 gitlab-ce 容器 ID

我猜这是因为我在容器上运行 gitlab 并且我没有配置特定的域名?

如果我的猜测是正确的,我可以在我的 gitlabci.yml 中设置任何环境变量来调整 gitlab 服务器的位置吗?

否则,有什么方法可以让运行者始终知道 gitlab 的 ip 正在发生变化?

以上内容有点专业,可能令人困惑,所以这里有一些背景:我正在尝试建立一个 devops 实验室,供学生学习 git、ci/cd 和其他 devops-y 实践。我只能在我当时拥有的任何 ip 上的笔记本电脑上部署这个 ad-hoc,并要求他们连接到我的盒子。在这些情况下,除了容器 ip 之外,我看不到任何方法可以在 gitlab 中设置域或任何静态内容,对吗?

最佳答案

所以,我没有试图说服两个容器互相交谈,而是使用了 docker compose,下面是我的 docker-compose.yml

version: "2"
services:
gitlab:
image: 'gitlab/gitlab-ce:latest'
restart: always
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url "http://gitlab:80"
gitlab_rails["gitlab_shell_ssh_port"] = 2224
gitlab_rails["lfs_enabled"] = true
gitlab_rails["time_zone"] = "CET"
gitlab_rails["gitlab_email_enabled"] = false
ports:
- '22:22'
- '80:80'
- '443:443'
volumes:
- 'gitlab_config:/etc/gitlab'
- 'gitlab_logs:/var/log/gitlab'
- 'gitlab_data:/var/opt/gitlab'

gitlab-runner:
image: 'gitlab/gitlab-runner:latest'
restart: always
volumes:
- 'runner_config:/etc/gitlab-runner'
- '/var/run/docker.sock:/var/run/docker.sock'
depends_on:
- gitlab
links:
- gitlab

volumes:
gitlab_config:
gitlab_logs:
gitlab_data:
runner_config:

这允许 gitlab 可以在 localhost 上访问,但运行者也可以在 http://gitlab 上看到 gitlab

关于docker - 如何配置 gitlab-ci runner 以从正确的 http url 克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47371921/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com