源代码可在此处获取。
此版本同时包含arm64(基于arm64v8/debian:stable-slim)和arm32(基于arm32v7/debian:stable-slim)镜像,通过docker manifest文件合并为单个镜像。
需安装Docker,参见***安装文档。
运行镜像:
bashdocker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
此命令将下载并启动GitLab CE容器,并发布SSH、HTTP和HTTPS所需端口。所有GitLab数据将存储在/srv/gitlab/的子目录中。容器将在系统重启后自动重启。
启动后,您可按照启动容器后部分说明登录Web界面。
如果使用SELinux,请运行以下命令:
bashdocker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab:Z \ -v /srv/gitlab/logs:/var/log/gitlab:Z \ -v /srv/gitlab/data:/var/opt/gitlab:Z \ ravermeister/gitlab
这将确保Docker进程有足够权限在挂载卷中创建配置文件。
GitLab容器使用主机挂载卷存储持久数据:
| 本地位置 | 容器内位置 | 用途 |
|---|---|---|
/srv/gitlab/data | /var/opt/gitlab | 存储应用数据 |
/srv/gitlab/logs | /var/log/gitlab | 存储日志 |
/srv/gitlab/config | /etc/gitlab | 存储GitLab配置文件 |
您可根据需求调整这些目录。
此容器使用***Omnibus GitLab包,所有配置通过唯一配置文件/etc/gitlab/gitlab.rb完成。
要访问GitLab配置文件,可在运行中的容器内启动shell会话,以便浏览所有目录并使用您喜欢的文本编辑器:
bashdocker exec -it gitlab /bin/bash
也可直接编辑/etc/gitlab/gitlab.rb:
bashdocker exec -it gitlab vi /etc/gitlab/gitlab.rb
打开/etc/gitlab/gitlab.rb后,确保设置external_url指向有效URL。
要接收GitLab发送的电子邮件,需配置SMTP设置,因为GitLab Docker镜像未安装SMTP服务器。
您可能还需要启用HTTPS。
完成所有所需更改后,需重启容器以重新配置GitLab:
bashdocker restart gitlab
注意: GitLab将在容器启动时自动重新配置。
有关配置GitLab的更多选项,请参见Omnibus GitLab文档。
您可通过在docker run命令中添加环境变量GITLAB_OMNIBUS_CONFIG来预配置GitLab Docker镜像。此变量可包含任何gitlab.rb设置,并在加载容器的gitlab.rb文件前求值。这样您可轻松配置GitLab的外部URL、数据库配置或Omnibus GitLab模板中的任何其他选项。
注意: GITLAB_OMNIBUS_CONFIG中包含的设置不会写入gitlab.rb配置文件,它们仅在加载时求值。
以下示例在启动容器时设置外部URL并启用LFS:
bashdocker run -d \ --hostname gitlab.example.com \ --env GITLAB_OMNIBUS_CONFIG="external_url '[***] gitlab_rails['lfs_enabled'] = true;" \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
注意,每次执行docker run命令时,都需要提供GITLAB_OMNIBUS_CONFIG选项。GITLAB_OMNIBUS_CONFIG的内容不会在后续运行中保留。
GitLab文档的环境变量部分还记录了一些有限的用于配置GitLab的环境变量。
启动容器后,您可访问http://localhost/或如果使用boot2docker则访问[***]。Docker容器可能需要一段时间才能开始响应请求。
首次访问GitLab时,系统会要求您设置管理员密码。更改密码后,可使用用户名root和设置的密码登录。
要将GitLab升级至新版本,需执行以下步骤:
停止运行中的容器:
bashdocker stop gitlab
删除现有容器:
bashdocker rm gitlab
拉取新镜像:
bashdocker pull ravermeister/gitlab
使用之前指定的选项重新创建容器:
bashdocker run -d \ --hostname gitlab.example.com \ -p 443:443 -p 80:80 -p 22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
首次运行时,GitLab将重新配置并更新自身。
我们提供GitLab Docker镜像的标记版本。
要查看所有可用标记,请访问:
要使用特定标记版本,将ravermeister/gitlab替换为所需版本,例如ravermeister/gitlab:13.5.1。
可通过修改-p标志使Docker使用您的IP地址并将所有流量转发到GitLab CE容器。
要在IP 1.1.1.1上暴露GitLab CE:
bashdocker run -d \ --hostname gitlab.example.com \ -p 1.1.1.1:443:443 \ -p 1.1.1.1:80:80 \ -p 1.1.1.1:22:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
然后您可通过[***]和[***]访问GitLab实例。
GitLab默认在容器内占用以下端口:
80(HTTP)443(如果配置HTTPS)8080(Unicorn使用)22(SSH守护进程使用)注意: 端口发布格式为
hostPort:containerPort。更多信息参见Docker关于[暴露入站端口][docker-ports]的文档。
警告: 不要使用端口
8080,否则会发生冲突。此端口已被容器内运行的Unicorn使用。
如果要为容器使用不同于80(HTTP)或443(HTTPS)的端口,需在docker run命令中添加单独的-p指令。
例如,要在端口8929暴露Web界面,在端口2289暴露SSH服务,使用以下docker run命令:
bashdocker run -d \ --hostname gitlab.example.com \ -p 8929:80 -p 2289:22 \ --name gitlab \ --restart always \ -v /srv/gitlab/config:/etc/gitlab \ -v /srv/gitlab/logs:/var/log/gitlab \ -v /srv/gitlab/data:/var/opt/gitlab \ ravermeister/gitlab
然后需要相应配置gitlab.rb:
设置external_url:
sh# 对于HTTP external_url "[***]" 或 # 对于HTTPS(注意https) external_url "[***]"
更多信息参见NGINX文档。
设置gitlab_shell_ssh_port:
rbgitlab_rails['gitlab_shell_ssh_port'] = 2289
按照上述示例,您可通过Web浏览器访问<hostIP>:8929,并通过端口2289使用SSH推送。
使用不同端口的docker-compose.yml示例可在docker-compose部分找到。
查看容器日志:
bashdocker logs gitlab
进入运行中的容器:
bashdocker exec -it gitlab /bin/bash
在容器内,您可像管理Omnibus安装一样管理GitLab容器。
使用[Docker Compose],您可轻松配置、安装和升级基于Docker的GitLab安装。
[安装][install-compose]Docker Compose
创建docker-compose.yml文件(或[下载示例][down-yml]):
yamlweb: image: 'ravermeister/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url '[***] # 在此处添加任何其他gitlab.rb配置,每行一个 ports: - '80:80' - '443:443' - '22:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab'
确保位于docker-compose.yml所在目录,运行docker-compose up -d启动GitLab
参见预配置Docker容器了解GITLAB_OMNIBUS_CONFIG变量的工作方式。
以下是使用自定义HTTP和SSH端口的docker-compose.yml示例,注意GITLAB_OMNIBUS_CONFIG变量与ports部分的匹配:
yamlweb: image: 'ravermeister/gitlab' restart: always hostname: 'gitlab.example.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url '[***] gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '9090:9090' - '2224:22' volumes: - '/srv/gitlab/config:/etc/gitlab' - '/srv/gitlab/logs:/var/log/gitlab' - '/srv/gitlab/data:/var/opt/gitlab'
这与使用-p 9090:9090 -p 2224:22效果相同。
如果已使用docker-compose安装GitLab,只需运行docker-compose pull和docker-compose up -d即可下载新版本并升级GitLab实例。
GitLab Docker镜像也可部署到各种容器调度平台。
在树莓派3或其他ARM开发板上运行镜像可能需要一些sysctl值以确保正常运行和良好性能。
只需在/etc/sysctl.conf末尾添加以下内容:
shkernel.sem = 250 32000 32 262 kernel.shmall = *** kernel.shmmax = 4294967295 net.core.somaxconn = 1024
可使用nano或vim编辑(例如sudo nano /etc/sysctl.conf)。
完成后,需将这些值加载到系统中,运行cat /etc/sysctl.conf /etc/sysctl.d/*.conf | sudo sysctl -e -p -,主机即可准备运行GitLab docker镜像。
更新Docker镜像时,可能会遇到所有路径显示500页面的问题。如果发生这种情况,尝试运行docker restart gitlab重启容器以解决问题。
从较旧的GitLab Docker镜像更新时,可能会遇到权限问题。这是由于之前镜像中的用户未正确保留导致的。有一个脚本可修复所有文件的权限。
要修复容器,只需执行update-permissions,然后重启容器:
bashdocker exec gitlab update-permissions docker restart gitlab
如果在docker主机上使用文件ACL,docker[^1]组需要对卷拥有完全访问权限才能使GitLab正常工作。
bash$ getfacl /srv/gitlab # file: /srv/gitlab # owner: XXXX # group: XXXX user::rwx group::rwx group:docker:rwx mask::rwx default:user::rwx default:group::rwx default:group:docker:rwx default:mask::

来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429