1. Download a gitlab-runner docker image
docker pull gitlab/gitlab-runner:latest
2. Run the GitLab Runner Container
docker run \-v /your-path/gitlab-runner/config:/etc/gitlab-runner \-v /your-path/gitlab-runner/cache:/cache \-v /var/run/docker.sock:/var/run/docker.sock \--name gitlab-runner gitlab/gitlab-runner:latest
--name gitlab-runner
:设置容器名称。--restart always
:设置容器在 Docker 重启后自动启动。-v /your-path/gitlab-runner/config:/etc/gitlab-runner
:将本地路径/your-path/gitlab-runner/config
挂载到容器中的/etc/gitlab-runner
,用来存储 GitLab Runner 的配置文件。-v /var/run/docker.sock:/var/run/docker.sock
:挂载 Docker socket,用以支持Docker执行器。
3. Register a runner
docker run -it --rm -v /your-path/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \--non-interactive \--executor "docker" \--docker-image alpine:latest \--url "https://your-gitlab.com/" \--registration-token "your token from gitlab" \--description "runner" \--tag-list "runner-01"
4. config.toml
concurrent = 10
check_interval = 0
connection_max_age = "15m0s"
shutdown_timeout = 0[session_server]session_timeout = 1800[[runners]]name = "runner"url = "https://your-gitlab.com/"id = 1token = "your token"token_obtained_at = 2024-11-13T06:53:07Ztoken_expires_at = 0001-01-01T00:00:00Zexecutor = "docker"[runners.custom_build_dir][runners.cache]MaxUploadedArchiveSize = 0[runners.cache.s3][runners.cache.gcs][runners.cache.azure][runners.docker]tls_verify = false#image = "alpine:latest"image = "your-harbor.com/base_image/alpine:latest"privileged = falsedisable_entrypoint_overwrite = falseoom_kill_disable = falsedisable_cache = falsevolumes = ["/cache",#"/your-path/gitlab-runner/npm_cache:/root/.npm","/your-path/gitlab-runner/npm_cache:/tmp/.npm","/your-path/gitlab-runner/nuget_cache:/root/.nuget/packages","/var/run/docker.sock:/var/run/docker.sock","/your-path/gitlab-runner/config/certs:/certs"]shm_size = 0network_mtu = 0
5. Stop gitlab-runner
docker stop gitlab-runner
docker rm gitlab-runner