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

标签 docker gitlab gitlab-ci-runner

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

进行克隆
http://username:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="80f0e1f3f3f7eff2e4c0b1b7b2aeb1b7aeb0aeb1" rel="noreferrer noopener nofollow">[email protected]</a>/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,并要求他们连接到我的盒子。在这种情况下,除了容器 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,而且运行者也可以在 http://gitlab 上看到 gitlab

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

相关文章:

Azure DevOps Pipeline - 构建 Docker 镜像并将其推送到具有受限网络访问权限的 Azure 容器注册表

git - 如何验证所有提交是否使用 GitLab CI 进行编译?

git - 如何推送到 Gitlab 上的远程 git 分支?

latex - 使用 GitLab CI 编译多个 LaTeX 文件

reactjs - Docker-Compose 用于 react 和 flask 使用 docker-compose up 执行容器

Bash 多个端口映射取决于脚本参数

docker - 如何安全地从 GitLab Runner KubernetesExecutor pod 推送到私有(private)容器注册表?

gitlab - 在 gitlab 管道中使用 semver 或时间戳

gitlab-ci - 带有 Gitlab-CI runner 的 Black Duck

gitlab - 将 gitlab runner 从 9 升级到 10