Providing a Container Registry

This use case outlines the need to provide an integrated container registry within the git.nrw platform. This allows developers, lecturers, and students to build, store, version, and distribute container images as part of their CI/CD workflows, avoiding the need for external, public registries like DockerHub. To enable the seamless storage and distribution of container images directly within GitLab, facilitating modern, secure software development and teaching standard industry workflows.

Idea
Plan
Prototype
Pilot
Live

Overview

Value: This use case outlines the need to provide an integrated container registry within the git.nrw platform. This allows developers, lecturers, and students to build, store, version, and distribute container images as part of their CI/CD workflows, avoiding the need for external, public registries like DockerHub. To enable the seamless storage and distribution of container images directly within GitLab, facilitating modern, secure software development and teaching standard industry workflows.

Problem: The need to integrate a secure container registry within the git.nrw platform, enabling users to store, version, and distribute container images directly without depending on external registries.

Solution: To enable the seamless storage and distribution of container images directly within GitLab, facilitating modern, secure software development and teaching standard industry workflows.

Who Benefits

Primary

  • Software Developers, Lecturers

Secondary

  • Students, System Administrators

When to Use

  • When container images need to be securely built, versioned, and distributed within GitLab CI/CD pipelines.

When Not to Use

  • When external container registries already meet all project requirements and workflows.

Process

  1. A developer commits a Dockerfile and a .gitlab-ci.yml to their project.
  2. The .gitlab-ci.yml contains a build stage that uses docker build to create an image.
  3. The CI script logs into the GitLab Container Registry using predefined CI/CD variables.
  4. The script pushes the newly built and tagged image to the registry.
  5. End-users or automated deployment systems can then pull the image from the registry to run the application.

Requirements

People

  • Lecturers
  • Students
  • IT Staff

Data Inputs

  • .gitlab-ci.yml
  • Dockerfile defining the container image

Tools & Systems

  • GitLab CI/CD
  • Docker

Policies & Compliance

  • GitLab access control and permission model

Risks & Mitigations

  • The registry is unavailable or misconfigured. The pipeline fails, forcing developers to use external public registries or halting the workflow.

    • Notify stakeholders promptly
    • Provide manual fallback procedure

Getting Started

Prerequisites: Git access and configured tools/systems listed below.

  1. Prepare repository/template/content as needed
  2. Configure tooling, permissions, and integrations
  3. Run the workflow and review results

FAQ

What is the benefit of using the integrated registry?

It allows secure storage and distribution of container images directly within GitLab.

Can external registries still be used?

Yes, but the internal registry improves security and simplifies CI/CD workflows.

Glossary

Container Registry
A storage and distribution system for container images.
CI/CD
Automation process for building, testing, and deploying software.
Docker
A platform for developing and running applications inside containers.
0