/gitlab-arm64

GitLab docker image (CE & EE) for arm64

Primary LanguageShellApache License 2.0Apache-2.0

GitLab Docker Image for ARM64

build-badge Docker Pulls Docker Image Size (tag) Docker Image Size (tag) Docker Image Version (latest by date)

README Languages: 👉 English 简体中文

What is this?

In recent years, ARM servers have become more and more widely used. Due to their flexibility, small size, efficiency, and low price, ARM processors are a great choice for infrastructure.

Several top cloud vendors in the world have invested in ARM servers and launched ARM products, including Amazon AWS, Azure, Google Cloud, Oracle Cloud, Huawei Cloud, etc.

However, the official GitLab docker image does not provide ARM64 version, which makes it difficult for ARM users to use GitLab. Actually, GitLab has provided ARM64 version for a long time, it's just that the official docker image is not built for ARM64.

This project is to build GitLab docker image for ARM64 use GitLab's official dockerfile.

Upstream dockerfile: https://gitlab.com/gitlab-org/omnibus-gitlab/-/tree/master/docker

This project is based on the official dockerfile, and only adds a few lines of code to make it work on ARM64.

How to use it?

This project aims to provide an ARM64 image that is eactly the same as the official x86_64 image. So you can use it in the same way as the official image.

Refer to the official docker installation documentation:

How to get image?

Pull Pre-built Images

Starting from GitLab CE/EE 13.12, this project continuously builds pre-built images for ARM64. You can view all available versions on DockerHub.

About Editions

CE represents the community edition, which is open-source and only offers a free tier, without official support from GitLab.

EE represents the enterprise edition, which provides the full version of GitLab and offers a free tier as well, with the option to upgrade to a paid version for additional features and official support.

GitLab officially recommends everyone to use the EE version. Please refer to https://about.gitlab.com/install/ce-or-ee/ for more information.

About Multi-architecture Images

Starting from version 16.0.4, all images provide multiple architecture versions to facilitate users who need to use both x86-64 and arm64 versions of the image (such as when scheduling GitLab in a cluster that includes both x86-64 and arm64 machines). The arm64 images are built using GitHub Actions, while the x86-64 version uses the corresponding official image.

This means that you only need to use one tag to pull the image, whether you are using an x86-64 or an arm64 machine. X86-64 machines will automatically pull the corresponding official GitLab image, while arm64 machines will pull the image built by this project.

If you only need an image that includes the arm64 architecture, simply add the -arm64 suffix after the tag. Prior to version 16.0.4, all images only included the arm64 version and did not have the -arm64 suffix in the tag.

Pulling from DockerHub

# Pull the latest version (default to CE version)
docker pull zengxs/gitlab:latest

# Pull the latest EE version
docker pull zengxs/gitlab:ee

# Pull a specified CE version
docker pull zengxs/gitlab:16.0.4-ce.0

Pull from GHCR

Deprecated: GHCR is deprecated due to the low usage rate and slowing down of the build process.

# Pull the latest version (default to CE)
docker pull ghcr.io/zengxs/gitlab-arm:latest

# Pull the latest EE version
docker pull ghcr.io/zengxs/gitlab-arm:ee

# Pull a specific CE version
docker pull ghcr.io/zengxs/gitlab-arm:16.0.4-ce.0

Build image manually

Preqrequisites: ARM64 linux machine, docker installed.

  1. Clone this project

    git clone https://github.com/zengxs/gitlab-docker.git
  2. Check the version of GitLab you want to build

    Version used in this example: 15.7.0-ce.0

    See https://packages.gitlab.com/gitlab/gitlab-ce or https://packages.gitlab.com/gitlab/gitlab-ee for available versions.

  3. Build image

    cd gitlab-docker
    # Build GitLab CE image
    docker build . \
       -t gitlab-ce:15.9.0-ce.0 \
       --build-arg RELEASE_PACKAGE=gitlab-ce \
       --build-arg RELEASE_VERSION=15.9.0-ce.0
    # Build GitLab EE image
    docker build . \
       -t gitlab-ee:15.9.0-ee.0 \
       --build-arg RELEASE_PACKAGE=gitlab-ee \
       --build-arg RELEASE_VERSION=15.9.0-ee.0