Gitlab hero border pattern left svg Gitlab hero border pattern right svg

GitLab
vs
Sonatype Nexus Repository

Decision Kit

Decision Kit

Sonatype Nexus Repository

Sonatype Nexus Repository (available in both OSS and Pro) is a part of the Sonatype Nexus suite. Other products are Nexus Lifecycle, Nexus Auditor, Nexus Firewall, Nexus Platform, and the Nexus Intelligence service.

Both Sonatype and GitLab offer a binary artifact repository and container registry, but Sonatype currently offers a support for more package types.

Feature Comparison
FEATURES

Built-in Container Registry

GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management. (Codefresh will be ending their support for private docker registries as of May 1, 2020

Documentation on Container Registry

Docker image support

Supports storage and retrieval of Docker style containers.

Learn more about the GitLab container registry

Container registry webhooks

Trigger actions after a successful push to a registry to integrate Docker Hub with other services.

Learn more about GitLab registry webhooks

Container registry high availability

Highly available through the use of multiple replicas of all containers and metadata such that if a machine fails, the registry continues to operate and can be repaired.

Learn more about GitLab high availability

Container Registry geographic replication

Supports distributed teams by running multiple registry instances across several regions and syncing between data centers.

Learn more about GitLab replication

Supports private container registries

Offers the ability to have private container registries and repositories

Learn more about GitLab private container registries

SaaS container registry offering

The container registry ia available as a software service.

Learn more about the container registry available on GitLab.com

Use container registry through REST API

Enables support for automation and integration of container registry through a REST API.

View the docs.

Container registry storage management

In the context of the Docker registry, garbage collection is the process of removing blobs from the filesystem when they are no longer referenced by a manifest.

Check out the documentation, and get started today.

Use search to find and container images

Search your group and project’s Container Registry by image name

Learn more about the GitLab Container Registry

Helm chart repository support

Supports storage and retrieval of Helm charts.

Check out the documentation, and get started today.

Container image cleanup policies

Easily define, manage and update project-level policies to define which images should be removed and preserved. This feature is designed to help you reduce storage costs and prevent important images from being deleted.

Learn more about container image cleanup policies

Virtual registries

A virtual registry is a collection of local, remote and other virtual registries accessed through a single logical URL.

GitLab Epic detailing the issues required to add this functionality.

Forward requests for packages not found in GitLab to npmjs.com

By default, when an NPM package is not found in the GitLab NPM Registry, the request is forwarded to npmjs.com

Check out the docs to learn more

Conan (C/C++) Repository

Conan is an open source, decentralized and multi-platform C/C++ Package Manager for developers to create and share native binaries.

Documentation on the Conan Repository

Maven (Java) Repository

GitLab’s Maven repository makes it easier to publish and share Java libraries across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization.

Documentation on the Maven Repository

NPM (node) Registry

GitLab’s NPM repository makes it easier to publish and share NPM packages across an organization, and ensure dependencies are managed correctly. It is fully integrated with GitLab, including authentication and authorization.

Documentation on the NPM Registry

NuGet (.NET) Repository

GitLab’s NuGet Repository allows C#/.NET developers to create, publish and share packages using the NuGet client or visual studio.

Documentation on the NuGet Repository

PyPI (Python) Repository

Python developers can set up GitLab as a remote PyPI repository and build, publish, and share packages using the PyPI client or GitLab CI/CD.

Documentation for the PyPI Repository

RPM (Linux) Repository

This planned feature will enable Linux developers to build, publish and share RPM packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

Debian (Linux) Repository

This planned feature will enable Linux developers to build, publish and share Debian packages alongside their source code and pipelines.

Check out the issue for additional details on implementation and timing

RubyGems (Ruby) Repository

This planned feature will enable Ruby developers to setup GitLab as a remote RubyGems repository and to build, publish and share packages using the command line or GitLab CI/CD. This will also be a valuable feature for GitLab and help with dogfooding

Check out the issue for additional details on implementation and timing

Go Proxy

This feature helps Go developers to publish and share their packages right alongside their source code and pipelines. This will also be a valuable feature for GitLab and help with dogfooding

Read the Go Proxy docs

Composer (PHP) Repository

This feature helps PHP developers to build, publish and share their packages right alongside their source code and pipelines.

Check out the docs

Use the Package Registry through REST API

Enables support for automation and integration of the GitLab Package Registry through a REST API.

Documentation on API