Created
June 25, 2024 16:04
-
-
Save denisxab/2f35c8f91ed1207116760dab3f86bdd6 to your computer and use it in GitHub Desktop.
Настройка собственного GitLab CI/CD сервера с помощью Docker Compose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
Добрый день следую вашей инструкции
docker ps
выводит у меня 3 контейнера
e9af7df0c982 docker:20-dind "dockerd-entrypoint.…" 31 minutes ago Up 2 minutes 2375-2376/tcp gitlab-dind-1
63b93c628360 gitlab/gitlab-runner:alpine "/usr/bin/dumb-init …" 31 minutes ago Up 2 minutes gitlab-gitlab-runner-1
241948f044fc gitlab/gitlab-ce:latest "/assets/wrapper" 31 minutes ago Up 2 minutes (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 443/tcp, 0.0.0.0:8822->22/tcp, [::]:8822->22/tcp gitlab-gitlab-1
У вас написано
Для выполнения команд войдите в контейнер register-runner:
Но у меня нет контейнера register-runner
при выполнении docker compose up --build
получаю такие логи
register-runner-1 | Runtime platform arch=amd64 os=linux pid=7 revision=374d34fd version=17.6.0
register-runner-1 | Running in system-mode.
register-runner-1 |
register-runner-1 | WARNING: Support for registration tokens and runner parameters in the 'register' command has been deprecated in GitLab Runner 15.6 and will be replaced with support for authentication tokens. For more information, see https://docs.gitlab.com/ee/ci/runners/new_creation_workflow
register-runner-1 | ERROR: Registering runner... failed runner=GR1348941o1QkfGY3 status=couldn't execute POST against http://gitlab/api/v4/runners: Post "http://gitlab/api/v4/runners": dial tcp 172.19.0.2:80: connect: connection refused
register-runner-1 | PANIC: Failed to register the runner.
Если позже выполняю команду - docker-compose restart register-runner
то регистрация успешно проходит ранера, но ничего не работает в пайплайне stuck написано
register-runner-1 | Registering runner... succeeded runner=Zmxrx-NV
gitlab-1 | 172.19.0.5 - - [17/Dec/2024:09:42:41 +0000] "POST /api/v4/runners HTTP/1.1" 201 67 "" "gitlab-runner 17.6.0 (17-6-stable; go1.22.7; linux/amd64)" -
register-runner-1 | Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
Пока не знаю куда копать
Возможно дело в том что я задал тэг ранеру shell-linux? попробую поменять на test
docker --version
Docker version 27.4.0, build bde2b89
При запуске раннера валится с ошибкой:
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)
При запуске раннера валится с ошибкой:
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)
Та же ошибка. Раннер поломан безнадежно.
Была та же проблема с раннером. Помогло что-то из этого:
- После этого не заработало:
Изменил в docker-compose.yml
- CI_SERVER_URL=http://gitlab
на - GITLAB_URL=http://"ip моего сервера":8000/
и выполнил
docker compose up --force-recreate -d
- После этого заработало:
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



Привет. в разделе "Управление GitLab Runner" вроде ошибка
должно быть
Ещё почему-то при выполнении
docker-compose restart register-runnerу меня не подтянулись значения из .env. Такой вариант сработал: