README Languages: | 👉 English | 简体中文 |
---|
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.
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:
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.
# 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
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
Preqrequisites: ARM64 linux machine, docker installed.
-
Clone this project
git clone https://github.com/zengxs/gitlab-docker.git
-
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.
-
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