build gitlab-ee for arm64 images
⚠️ Important Update (2025+):
- GitLab officially supports ARM64 architecture starting from version 18.1 🎉
- If you need GitLab 18.1 or newer, we recommend using the official image:
gitlab/gitlab-ee:latest- This project primarily provides ARM64 support for GitLab 18.0 and earlier versions
- Official image: https://hub.docker.com/r/gitlab/gitlab-ee
This project was created to run GitLab on Raspberry Pi 4.
This project aims to provide ARM64 architecture Docker image build support for GitLab EE. Through automated scripts and GitHub Actions workflows, users can easily build, manage, and publish GitLab EE images for ARM64.
GitLab officially supports ARM64 starting from version 18.1!
Use the official multi-architecture image:
# Docker will automatically pull the ARM64 version on ARM64 platforms
docker pull gitlab/gitlab-ee:latest
# Or specify a version (18.1+)
docker pull gitlab/gitlab-ee:18.1.0-ee.0version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ee:latest # Official ARM64 support
container_name: gitlab
volumes:
- './gitlab/config:/etc/gitlab'
- './gitlab/log:/var/log/gitlab'
- './gitlab/data:/var/opt/gitlab'
restart: always
ports:
- '80:80'
- '443:443'
- '22:22'Use this project's images for older versions that don't have official ARM64 support:
docker pull gsdukbh/gitlab-ee-arm64:18.0.6-ee.0
docker pull gsdukbh/gitlab-ee-arm64:17.11.7-ee.0
docker pull gsdukbh/gitlab-ee-arm64:16.11.10-ee.0For GitLab version 18.1 and above, use the official images with native ARM64 support:
version: '3.7'
services:
gitlab:
image: gitlab/gitlab-ee:latest # Official multi-arch image
container_name: gitlab
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com'
volumes:
- './gitlab/config:/etc/gitlab'
- './gitlab/log:/var/log/gitlab'
- './gitlab/data:/var/opt/gitlab'
shm_size: '256m'
restart: always
ports:
- '80:80'
- '443:443'
- '22:22'Then run:
docker-compose up -dTo deploy older GitLab EE versions for ARM64 using Docker Compose:
- Ensure you have Docker and Docker Compose installed on your system.
- Create a
docker-compose.ymlfile with the configuration below. - Run the following command to start the services:
docker-compose up -d- Access GitLab in your browser at
http://<your-server-ip>.
For additional configuration or troubleshooting, refer to the official GitLab documentation.
Example docker-compose.yml for GitLab 17.x/18.0:
version: '3.7'
services:
gitlab:
image: gsdukbh/gitlab-ee-arm64:18.0.6-ee.0 # Use specific version tag
container_name: gitlab
volumes:
# Optional: license files for GitLab EE features
# - ./license.rb:/opt/gitlab/embedded/service/gitlab-rails/ee/app/models/license.rb
# - ./license_key.pub:/opt/gitlab/embedded/service/gitlab-rails/.license_encryption_key.pub
- './gitlab/config:/etc/gitlab'
- './gitlab/log:/var/log/gitlab'
- './gitlab/data:/var/opt/gitlab'
restart: always
ports:
- '80:80'
- '8090:8090'
- '22:22'
links:
- 'ES:elasticsearch'
git-runner:
image: gitlab/gitlab-runner:latest
container_name: runner
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- './runner/config:/etc/gitlab-runner'
restart: always
links:
- 'gitlab:gitlab'
ES:
image: elasticsearch:8.11.0
container_name: elasticsearch8
restart: always
volumes:
- es_data:/usr/share/elasticsearch/data
environment:
- discovery.type=single-node
# - ELASTIC_USERNAME=elastic
- ELASTIC_PASSWORD=7gzXgeo0w11vPtEmniyJ
- ES_JAVA_OPTS=-Xms1024m
ports:
- 9200:9200
- 9300:9300
volumes:
es_data:
| GitLab Version | ARM64 Support | Recommended Image |
|---|---|---|
| 18.1+ | ✅ Official | gitlab/gitlab-ee:latest or gitlab/gitlab-ee:18.x.x-ee.0 |
| 18.0 | gsdukbh/gitlab-ee-arm64:18.0.x-ee.0 |
|
| 17.x | gsdukbh/gitlab-ee-arm64:17.x.x-ee.0 |
|
| 16.x | gsdukbh/gitlab-ee-arm64:16.x.x-ee.0 |
|
| 15.x and older | gsdukbh/gitlab-ee-arm64:15.x.x-ee.0 |
Note: For GitLab 18.1+, we strongly recommend using the official images for better support and updates.