我在单独的容器中运行gitlab和runner。 Gitlab在localhost端口80上是可访问的,我可以用
进行克隆http://username:password@172.17.0.1/root/citest.git
172.17.0.1是我框中docker0接口的ip 但是,当运行任何管道时,我遇到了可怕的“你似乎克隆了一个空的存储库”问题。调查显示,跑步者有以下遥控器:
[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中设置域或任何静态的东西,对吗?
答案 0 :(得分:1)
所以,不是试图说服两个容器互相交谈,而是使用了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:
这样可以在localhost上访问gitlab,但是运行者也可以在http://gitlab上看到gitlab