Local GitLab + Runner Setup¶
Use this when no remote GitLab is available yet and you want to validate .gitlab-ci.yml locally.
Start local GitLab¶
- Start services:
docker compose -f doc/operations/local-dev/docker-compose.gitlab.yaml up -d- Watch startup logs:
docker logs -f gpuaas-gitlab- Open GitLab:
http://localhost:8929
Get root password¶
docker exec -it gpuaas-gitlab grep 'Password:' /etc/gitlab/initial_root_password
Register runner (Docker executor)¶
- In GitLab UI, create a runner token (project/group/instance).
- Register:
docker exec -it gpuaas-gitlab-runner gitlab-runner register- Use values:
- GitLab URL:
http://gitlab:8929/ - Executor:
docker - Default Docker image:
golang:1.26 - Mount Docker socket already configured by compose
Note: inside the runner container, use http://gitlab:8929/ (service name), not localhost.
Local CI dry run (without GitLab server)¶
Run all reusable CI scripts in pipeline order:
- bash scripts/ci/gitlab_local_dry_run.sh
This validates the same gates used by .gitlab-ci.yml and catches most issues before pushing to remote.
Stop local GitLab¶
docker compose -f doc/operations/local-dev/docker-compose.gitlab.yaml down