Gitlab Misc.

Access Control, Gitlab CI

Posted by Rico's Nerd Cluster on August 10, 2018

Access Control

If you are not sure who have the merge privileges,

  1. Go to your project.
  2. Navigate to: Project Information > Members
  3. Check Roles with write access:
    • Maintainer – Full access, including merge.
    • Developer – Can push and typically merge, unless restricted.

🧪 Basic Pipeline

  1. Build Strategy Options: there are two main ways to build Docker images in GitLab CI:
    • Option A: Docker-in-Docker (DinD)
      • Requires privileged: true.
      • Enables full Docker commands inside a container.
      • More self-contained but slower and more complex.
    • Option B: Test in default container and split Jobs
      • login_job – performs Docker login.
      • build_job – builds and tags the image.
      • push_job – pushes to registry.
        • Use cache: to persist login credentials between jobs.

          1
          2
          3
          4
          
            cache:
            key: docker-login
            paths:
                - ~/.docker/config.json
          
    • Automatically triggered by:
      • Pushes to main, feature/*, or merge requests.
      • Scheduled nightly CI jobs.
    • By default, these jobs are run in parallel
  2. Image Deployment
    • After downloading:

      1
      
        docker load -i image.tar
      
    • Final deployment pushes image to GitLab Container Registry or Docker Hub.