ndp
ndp

Reputation: 893

how to configure gitlab-ci runner to clone from correct http url

I'm running both gitlab and runner in separate containers. Gitlab is accesssible on localhost port 80 and I can clone with

http://username:[email protected]/root/citest.git

172.17.0.1 being the ip of the docker0 interface on my box However, when running any pipeline I'm getting the dreaded "You appear to have cloned an empty repository" issue. Investigation showed that the runner has the following remote:

[remote "origin"]
    url = http://gitlab-ci-token:jEZ_WtWKR4LaP63Qrk_E@b4b32c3cc3e7/root/citest.git

b4b32c3cc3e7 is the gitlab-ce container id

I guess this is because I'm running gitlab on a container and I haven't configured a specific domain name?

If my guess is correct, is there any environment variable I can set in my gitlabci.yml to adjust the location of the gitlab server?

Otherwise, is there any way where I can make the runner always know gitlab's ip which is changing?

The above is a bit specialized and maybe confusing so here's some background: I'm trying to make a devops lab for students to learn git, ci/cd and other devops-y practices on. I can only deploy this ad-hoc on my laptop on whatever ip I have at that time and ask them to connect to my box. Under these circumstances I don't see any way to set a domain or anything static in gitlab other than a container ip, right?

Upvotes: 2

Views: 791

Answers (1)

ndp
ndp

Reputation: 893

SO, instead of trying to persuade two containers to talk to each other I used docker compose, below is my 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:

This allows gitlab to be accessible on localhost but also the runner can see gitlab on http://gitlab

Upvotes: 2

Related Questions