繁体   English   中英

maven:来自 gitlab-runner 的最新图像,带有 docker 执行器“无法连接到 gitlab 连接被拒绝”使用 ZBAEDBAE645E0857

[英]maven:latest image from gitlab-runner with docker executer “Failed to connect to gitlab Connection refused” using docker-compose

我在 Mac 上使用 gitlab/gitlab-ce:latest docker 图像来构建一些自定义 gitlab 运行器,它将跨越自定义 maven 图像。 目前我在使用 docker compose 设置基本环境时遇到问题

请参阅下面的 docker-compose.yml。

version: '3.7'
services:
  gitlab:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        # external_url 'https://gitlab.example.com'
        # Add any other gitlab.rb configuration here, each on its own line
    ports:
      - '8080:80'
      - '8443:443'
      - '2022:22'
    volumes:
      - '${HOME}/gitlab/config:/etc/gitlab'
      - '${HOME}/gitlab/logs:/var/log/gitlab'
      - '${HOME}/gitlab/data:/var/opt/gitlab'
    networks:
      default:
        aliases:
          - 'gitlab.example.com'
  gitlab-runner:
    image: 'gitlab/gitlab-runner:latest'
    hostname: 'runner.example.com'
    restart: always
    volumes:
      - '${HOME}/gitlab-runner/config:/etc/gitlab-runner'
      - '/var/run/docker.sock:/var/run/docker.sock'
    depends_on:
      - gitlab
    networks:
      default:
        aliases:
        - 'runner.example.com'

目前我可以在 gitlab 服务器中成功注册 runner 并发出合并请求

要注册跑步者,我在正在运行的 docker gitlab-runner 容器中使用以下命令。

#[host] docker exec -it <gitlab-runner container-id> bash
#[gitlab-runner] gitlab-runner register \
  --non-interactive \
  --url http://gitlab.example.com \
  --registration-token "xxxxxx" \
  --description "docker-maven-runner" \
  --tag-list "docker" \
  --run-untagged="true" \
  --executor "docker"\
  --docker-image "maven:latest" 

但是管道总是失败并出现以下错误

Running with gitlab-runner 12.10.2 (c5874a4b)
   on docker-maven-runner 7zhsdXRx
Preparing the "docker" executor
00:02
 Using Docker executor with image maven:latest ...
 Pulling docker image maven:latest ...
 Using docker image sha256:44e27997f4c0493779146fc89ab571f5f829ac6538d0d7d40cbe9fe2b36d4a60 for maven:latest ...
Preparing environment
00:02
 Running on runner-7zhsdxrx-project-2-concurrent-0 via runner.example.com...
Getting source from Git repository
00:01
 Fetching changes with git depth set to 50...
 Reinitialized existing Git repository in /builds/hramanmcg/sonar-java-test/.git/
 fatal: unable to access 'http://gitlab.example.com/hramanmcg/sonar-java-test.git/': Failed to connect to gitlab.example.com port 80: Connection refused
Uploading artifacts for failed job
00:02
 ERROR: Job failed: exit code 1

我的猜测是我需要一些方法来指定网络,所以当跑步者跨越容器时,它将连接到正确的网络,但我找不到如何做到这一点

一些调试信息

#docker-compose ps

                 Name                               Command                  State                                     Ports
----------------------------------------------------------------------------------------------------------------------------------------------------------
sonar-assistant-docker_gitlab-runner_1   /usr/bin/dumb-init /entryp ...   Up
sonar-assistant-docker_gitlab_1          /assets/wrapper                  Up (healthy)   0.0.0.0:2022->22/tcp, 0.0.0.0:8443->443/tcp, 0.0.0.0:8080->80/tcp

#docker network ls
 NETWORK ID          NAME                              DRIVER              SCOPE
 2fb969181eb3        bridge                            bridge              local
 0f73fd4baa79        host                              host                local
 96216f1d093e        none                              null                local
 7b120474fd1b        sonar-assistant-docker_default    bridge              local

回答我自己的问题。
我在注册中找到了一个设置 docker 网络的选项。 使用--docker-network-mode
我不确定如何在交互模式下使用它,但在非交互模式下,以下对我有用

#[host] docker exec -it <gitlab-runner container-id> bash
#[gitlab-runner] gitlab-runner unregister --all-runners
#[gitlab-runner] gitlab-runner register \
  --non-interactive \
  --url http://gitlab.example.com \
  --registration-token "xxxx" \
  --description "docker-maven-runner" \
  --executor "docker" \
  --docker-image "maven:latest" \
  --docker-network-mode sonar-assistant-docker_default

使用 GitLab 社区版 12.10.2 和 Gitlab Runner 12.10.2 和 Docker 桌面 2.3.0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM