-
-
Save denisxab/2f35c8f91ed1207116760dab3f86bdd6 to your computer and use it in GitHub Desktop.
| 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
гайс, выпустили новую версию gitlab-runner, убрали команду register, используйте gitlab-runner register, то бишь
register-runner:
restart: "no"
image: gitlab/gitlab-runner:alpine
environment:
- REGISTRATION_TOKEN=glrt-RYRh6iL31dfOXqKbAvh3TG86MQpwOjEKdDozCnU6MQ8.01.170uysxvs
- CI_SERVER_URL=http://gitlab
command:
- gitlab-runner register
- --non-interactive
- --locked=false
# Имя для runner, обычно название такое же как у проекта
- --name="sq1"
- --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, вот фикс
dind:
image: docker:20-dind
restart: always
privileged: true
environment:
DOCKER_TLS_CERTDIR: ""
command: ["--storage-driver=overlay2"]
volumes:
- dind-data:/var/lib/docker
networks:
- gitlab_net
depends_on:
- gitlab
вот фулл докер компоуз если в падлу :
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'] = 'XXXXXX'
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:
- dind-data:/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=glrt-RYRh6iL31dfOXqKbAvh3TG86MQpwOjEKdDozCnU6MQ8.01.170uysxvs
- CI_SERVER_URL=http://gitlab
command:
- gitlab-runner register
- --non-interactive
- --locked=false
# Имя для runner, обычно название такое же как у проекта
- --name="sq1"
- --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
volumes:
dind-data:



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