Skip to content

Instantly share code, notes, and snippets.

@denisxab
Created June 25, 2024 16:04
Show Gist options
  • Select an option

  • Save denisxab/2f35c8f91ed1207116760dab3f86bdd6 to your computer and use it in GitHub Desktop.

Select an option

Save denisxab/2f35c8f91ed1207116760dab3f86bdd6 to your computer and use it in GitHub Desktop.
Настройка собственного GitLab CI/CD сервера с помощью Docker Compose
version: "3.5"
services:
gitlab:
image: gitlab/gitlab-ce:latest
hostname: "localhost"
restart: unless-stopped
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://localhost'
gitlab_rails['gitlab_shell_ssh_port'] = 8822
gitlab_rails['initial_root_password'] = 'CHANGEME123'
ports:
- "8000:80"
- "8822:22"
volumes:
- ./data/docker/gitlab/etc/gitlab:/etc/gitlab
- ./data/docker/gitlab/var/opt/gitlab:/var/opt/gitlab
- ./data/docker/gitlab/var/log/gitlab:/var/log/gitlab
networks:
- gitlab_net
dind:
image: docker:20-dind
restart: always
privileged: true
environment:
DOCKER_TLS_CERTDIR: ""
command:
- --storage-driver=overlay2
volumes:
- ./data/dind/docker:/var/lib/docker
networks:
- gitlab_net
depends_on:
- gitlab
gitlab-runner:
image: gitlab/gitlab-runner:alpine
restart: unless-stopped
environment:
- DOCKER_HOST=tcp://dind:2375
# command:
# # Скачаем docker чтобы можно было увидеть какие есть контейнеры
# - apk update
# - apk add --no-cache docker
# - addgroup gitlab-runner docker
volumes:
- ./config:/etc/gitlab-runner:z
- ./data/runner/cache:/cache
- /var/run/docker.sock:/var/run/docker.sock
networks:
- gitlab_net
depends_on:
- gitlab
register-runner:
restart: "no"
image: gitlab/gitlab-runner:alpine
environment:
- REGISTRATION_TOKEN=${REGISTRATION_TOKEN}
- CI_SERVER_URL=http://gitlab
command:
- register
- --non-interactive
- --locked=false
# Имя для runner, обычно название такое же как у проекта
- --name=${RUNNER_NAME}
- --executor=docker
# Url до своего gitlab сервера, тут он у нас в одной сети
- --url=http://gitlab
- --clone-url=http://gitlab
- --docker-image=docker:20-dind
- --docker-volumes=/var/run/docker.sock:/var/run/docker.sock
# Чтобы контейнре мог иметь сетевой доступ к контейнеру с gitlab
- --docker-network-mode=host
volumes:
- ./config:/etc/gitlab-runner:z
- ./data/dind/docker:/var/lib/docker
networks:
- gitlab_net
depends_on:
- dind
networks:
gitlab_net:
name: gitlab_net
@kosukhin
Copy link

kosukhin commented Dec 17, 2024

Да переименовал в .env в RUNNER_NAME=test убрал привязку к тэгу shell-linux в .gitlab-ci.yml
и прошел пайплайн

Screenshot

Плюс еще какая-то политика protected branch не дает запускать пайплайн на main ветке тк она protected я так понял.
поэтому я сделал отдельную ветку не protected и на ней запустилось

@6elkir
Copy link

6elkir commented Mar 24, 2025

При запуске раннера валится с ошибкой:

Running with gitlab-runner 17.10.0 (67b2b2db)
  on Common t1_JsbSV, system ID: r_Z[2](http://*****/-/jobs/4#L2)q6neIE6mOj
Preparing the "docker" executor
00:12
Using Docker executor with image docker:20-dind ...
Using helper image:  registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_6[4](http://*****/-/jobs/4#L4)-v17.10.0
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-v17.10.0 ...
WARNING: Failed to pull image with policy "always": failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /usr: no such file or directory (manager.go:2[5](http://*****/-/jobs/4#L5)4:11s)
ERROR: Job failed: failed to pull image "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x8[6](http://*****/-/jobs/4#L6)_64-v17.10.0" with specified policies [always]: failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /usr: no such file or directory (manager.go:254:11s)

@alexkag
Copy link

alexkag commented May 15, 2025

При запуске раннера валится с ошибкой:

Running with gitlab-runner 17.10.0 (67b2b2db)
  on Common t1_JsbSV, system ID: r_Z[2](http://*****/-/jobs/4#L2)q6neIE6mOj
Preparing the "docker" executor
00:12
Using Docker executor with image docker:20-dind ...
Using helper image:  registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_6[4](http://*****/-/jobs/4#L4)-v17.10.0
Pulling docker image registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-v17.10.0 ...
WARNING: Failed to pull image with policy "always": failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /usr: no such file or directory (manager.go:2[5](http://*****/-/jobs/4#L5)4:11s)
ERROR: Job failed: failed to pull image "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x8[6](http://*****/-/jobs/4#L6)_64-v17.10.0" with specified policies [always]: failed to register layer: ApplyLayer exit status 1 stdout:  stderr: lchown /usr: no such file or directory (manager.go:254:11s)

Та же ошибка. Раннер поломан безнадежно.

@JbanS
Copy link

JbanS commented May 25, 2025

Была та же проблема с раннером. Помогло что-то из этого:

  1. После этого не заработало:
    Изменил в docker-compose.yml
  • CI_SERVER_URL=http://gitlab
    на
  • GITLAB_URL=http://"ip моего сервера":8000/
    и выполнил
    docker compose up --force-recreate -d
  1. После этого заработало:
docker compose stop register-runner
docker compose up -d register-runner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment