Комментарии 3
version: '3.5'
name: gitlab-runner
services:
runner:
restart: always
image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ~/.gitlab-runner:/etc/gitlab-runner:z
network_mode: host
Ларчик просто открывался. Это всё, что нужно для запуска gitlab-runner
без танцев с бубном.
(И ещё до кучи, не проверял - ChatGPT насоветовал.)
Это позволяет запускать задания GitLab CI/CD в отдельных, изолированных контейнерах Docker. Вот пример конфигурации docker-compose.yml
для GitLab Runner:
version: '3.5'
services:
dind:
image: docker:20-dind
restart: always
privileged: true
environment:
DOCKER_TLS_CERTDIR: ''
command:
- --storage-driver=overlay2
runner:
restart: always
image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
depends_on:
- dind
environment:
- DOCKER_HOST=tcp://dind:2375
volumes:
- ./config:/etc/gitlab-runner:z
register-runner:
restart: 'no'
image: registry.gitlab.com/gitlab-org/gitlab-runner:alpine
depends_on:
- dind
environment:
- CI_SERVER_URL=${CI_SERVER_URL}
- REGISTRATION_TOKEN=${REGISTRATION_TOKEN}
command:
- register
- --non-interactive
- --locked=false
- --name=${RUNNER_NAME}
- --executor=docker
- --docker-image=docker:20-dind
- --docker-volumes=/var/run/docker.sock:/var/run/docker.sock
volumes:
- ./config:/etc/gitlab-runner:z
Вам также потребуется файл .env
со следующим содержимым:
RUNNER_NAME=RUNNER-NAME
REGISTRATION_TOKEN=TOKEN
CI_SERVER_URL=https://gitlab.com/
Пожалуйста, замените RUNNER_NAME
, REGISTRATION_TOKEN
, и CI_SERVER_URL
на соответствующие значения для вашего проекта.
Как отказаться от helper_image?
### config.toml - diff helper_image VS docker image ###
# concurrent = 1
concurrent = 2
check_interval = 0
shutdown_timeout = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "via docker"
url = "http://localhost"
id = 13
token = "glrt-2GR51rubUbopK_fqMFLz"
token_obtained_at = 2023-12-12T14:51:21Z
token_expires_at = 0001-01-01T00:00:00Z
executor = "docker"
# only for docker image:
environment = ["DOCKER_DRIVER=overlay2", "DOCKER_LOGIN=gitlab-ci", "DOCKER_PASSWORD=password"]
[runners.cache]
MaxUploadedArchiveSize = 0
[runners.docker]
tls_verify = false
# image = ""
image = "docker:latest"
# privileged = true
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
# volumes = ["/certs/client", "/cache"]
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
shm_size = 0
network_mode = "host"
# helper_image = "registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper:x86_64-e0218c92"
# network_mtu = 0
# only for docker image:
pull_policy = ["always", "if-not-present"]
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Инструкция: как поднять GitLab CI/CD на GoLang-проекте