docker 如何访问GitLab Runner容器中的GitLab示例容器,在同一台机器上克隆存储库?

y4ekin9u  于 2024-01-06  发布在  Docker
关注(0)|答案(1)|浏览(174)

我完全知道在同一台机器上设置GitLab和GitLab Runner是一种不好的做法,但我这样做只是为了测试目的。我在Ubuntu OS上通过Docker安装了GitLab和GitLab Runner。
管道给出以下错误:
x1c 0d1x的数据
正如你所看到的,runner不能从repository克隆。到目前为止,我所做的是:
这是docker-compose文件

  1. version: '3'
  2. services:
  3. gitlab:
  4. image: 'gitlab/gitlab-ce:latest'
  5. hostname: 'localhost:180'
  6. container_name: 'gitlab'
  7. restart: unless-stopped
  8. networks:
  9. - gitlab-network
  10. environment:
  11. GITLAB_OMNIBUS_CONFIG: |
  12. external_url 'http://localhost:180'
  13. ports:
  14. - '180:80'
  15. - '1443:443'
  16. - '122:22'
  17. - '1587:587'
  18. volumes:
  19. - 'gitlab_config:/etc/gitlab'
  20. - 'gitlab_logs:/var/log/gitlab'
  21. - 'gitlab_data:/var/opt/gitlab'
  22. shm_size: '6gb'
  23. gitlab-runner:
  24. container_name: 'gitlab-runner'
  25. image: 'gitlab/gitlab-runner:latest'
  26. networks:
  27. - gitlab-network
  28. volumes:
  29. - /var/run/docker.sock:/var/run/docker.sock
  30. - ./config:/etc/gitlab-runner
  31. restart: unless-stopped
  32. volumes:
  33. gitlab_config : {}
  34. gitlab_logs : {}
  35. gitlab_data: {}
  36. networks:
  37. gitlab-network:
  38. driver: bridge

字符串
这是/etc/gitlab-runner/config.toml

  1. concurrent = 1
  2. check_interval = 0
  3. shutdown_timeout = 0
  4. [session_server]
  5. session_timeout = 1800
  6. [[runners]]
  7. name = "my-runner"
  8. url = "http://gitlab/"
  9. id = 3
  10. token = "glrt-rg-noV98QitS65raRQzk"
  11. token_obtained_at = 2023-12-05T10:33:20Z
  12. token_expires_at = 0001-01-01T00:00:00Z
  13. executor = "docker"
  14. [runners.cache]
  15. MaxUploadedArchiveSize = 0
  16. [runners.docker]
  17. tls_verify = false
  18. image = "alpine:latest"
  19. privileged = false
  20. disable_entrypoint_overwrite = false
  21. oom_kill_disable = false
  22. disable_cache = false
  23. volumes = ["/cache"]
  24. shm_size = 0
  25. network_mtu = 0


我的理解
localhost在GitLab Runner容器中的含义是不同的,它指向容器本身,而不是主机。所以我尝试用不同的方式设置extra_host,如下所示:

  • extra_hosts = ["localhost:gitlab"]:它报告错误,gitlab不是有效的URL
  • extra_hosts = ["localhost:IP_ADDRESS_HOST_MACHINE"]:不工作
  • extra_hosts = ["localhost:IP_ADDRESS_GITLAB_CONTAINER"]:不工作

我也在两个服务中设置了network_mode: "host",但没有工作。
我一直在努力解决这个问题大约一个星期了,我已经尝试了各种方法,但我还没有得出任何结论。

rpppsulh

rpppsulh1#

你应该可以通过docker网络访问gitlab。只需相应地设置clone_url参数。

  1. [[ runners ]]
  2. # ...
  3. clone_url = "http://gitlab"

字符串

相关问题