---
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
---

# Building `omnibus-gitlab` packages and Docker images locally

NOTE:
If you are a GitLab team member, you have access to our CI infrastructure which
can be used to build these artifacts. Check the [documentation](team_member_docs.md)
for more details.

## `omnibus-gitlab` packages

`omnibus-gitlab` uses the [omnibus](https://github.com/chef/omnibus) tool for
building packages for the supported operating systems. The omnibus tool will detect
the OS where it is being used and build packages for that OS. It is recommended
to use a Docker container corresponding to the OS as the environment for building
packages.

How to build a custom package locally is described in the
[dedicated document](build_package.md).

## All-in-one Docker image

NOTE:
If you want individual Docker images for each GitLab component instead of the
all-in-one monolithic one, check out the
[CNG](https://gitlab.com/gitlab-org/build/CNG) repository.

The GitLab all-in-one Docker image uses the `omnibus-gitlab` package built for
Ubuntu 22.04 under the hood. The Dockerfile is optimized to be used in a CI
environment, with the expectation of packages being available over the Internet.

We're looking at improving this situation
[in issue #5550](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/5550).

How to build an all-in-one Docker image locally is described in the
[dedicated document](build_docker_image.md).
