{{< details >}}
- Tier: 基础版,专业版,旗舰版
- Offering: 私有化部署
{{< /details >}}
此容器使用官方 Linux 软件包,因此您可以使用独特的配置文件 /etc/gitlab/gitlab.rb
来配置实例。
编辑配置文件
要访问极狐GitLab 配置文件,您可以在运行中的容器上下文中启动一个 shell 会话。
-
启动会话:
sudo docker exec -it gitlab /bin/bash
或者,您可以直接在编辑器中打开
/etc/gitlab/gitlab.rb
:sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
-
在您喜欢的文本编辑器中,打开
/etc/gitlab/gitlab.rb
并更新以下字段: -
保存文件并重启容器以重新配置极狐GitLab:
sudo docker restart gitlab
每次容器启动时,极狐GitLab 都会重新配置自己。有关极狐GitLab 的更多配置选项,请参阅 配置文档。
预配置 Docker 容器
您可以通过将环境变量 GITLAB_OMNIBUS_CONFIG
添加到 Docker 运行命令来预配置极狐GitLab Docker 镜像。此变量可以包含任何 gitlab.rb
设置,并在加载容器的 gitlab.rb
文件之前进行评估。这种行为允许您配置外部极狐GitLab URL,进行数据库配置或其他来自 Linux 软件包模板 的任何选项。 GITLAB_OMNIBUS_CONFIG
中包含的设置不会写入 gitlab.rb
配置文件,而是在加载时进行评估。要提供多个设置,请用冒号 (;
) 分隔它们。
以下示例设置外部 URL,启用 LFS,并以 Prometheus 所需的最小 shm 大小 启动容器:
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'; gitlab_rails['lfs_enabled'] = true;" \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
每次执行 docker run
命令时,您需要提供 GITLAB_OMNIBUS_CONFIG
选项。 GITLAB_OMNIBUS_CONFIG
的内容在后续运行之间 不会 保留。
在公共 IP 地址上运行极狐GitLab
您可以通过修改 --publish
标志使 Docker 使用您的 IP 地址并将所有流量转发到极狐GitLab 容器。
要在 IP 198.51.100.1
上公开极狐GitLab:
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'" \
--publish 198.51.100.1:443:443 \
--publish 198.51.100.1:80:80 \
--publish 198.51.100.1:22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
registry.gitlab.cn/omnibus/gitlab-jh:latest
然后,您可以在 http://198.51.100.1/
和 https://198.51.100.1/
访问您的极狐GitLab 实例。
在不同端口上公开极狐GitLab
极狐GitLab 在容器内部占用了 特定端口。
如果您希望使用与默认端口 80
(HTTP)、443
(HTTPS) 或 22
(SSH) 不同的主机端口,则需要在 docker run
命令中添加单独的 --publish
指令。
例如,要在主机的端口 8929
上公开 Web 界面,并在端口 2424
上公开 SSH 服务:
-
使用以下
docker run
命令:sudo docker run --detach \ --hostname gitlab.example.com \ --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com:8929'; gitlab_rails['gitlab_shell_ssh_port'] = 2424" \ --publish 8929:8929 --publish 2424:22 \ --name gitlab \ --restart always \ --volume $GITLAB_HOME/config:/etc/gitlab \ --volume $GITLAB_HOME/logs:/var/log/gitlab \ --volume $GITLAB_HOME/data:/var/opt/gitlab \ --shm-size 256m \ registry.gitlab.cn/omnibus/gitlab-jh:latest
{{< alert type=”note” >}}
发布端口的格式为
hostPort:containerPort
。{{< /alert >}}
-
进入运行中的容器:
sudo docker exec -it gitlab /bin/bash
-
使用编辑器打开
/etc/gitlab/gitlab.rb
并设置external_url
:# 对于 HTTP external_url "http://gitlab.example.com:8929" 或者 # 对于 HTTPS(注意 https) external_url "https://gitlab.example.com:8929"
此 URL 中指定的端口必须与 Docker 发布到主机的端口匹配。此外,如果
nginx['listen_port']
中没有显式设置 NGINX 监听端口,则会使用external_url
。有关更多信息,请参阅 NGINX 文档。 -
设置 SSH 端口:
gitlab_rails['gitlab_shell_ssh_port'] = 2424
-
最后,重新配置极狐GitLab:
gitlab-ctl reconfigure
根据上述示例,您的 Web 浏览器可以在 <hostIP>:8929
上访问您的极狐GitLab 实例,并在端口 2424
上通过 SSH 推送。
您可以查看使用不同端口的 docker-compose.yml
示例,请参阅 Docker 组合 部分。
配置多个数据库连接
从极狐GitLab 16.0 开始,极狐GitLab 默认使用两个指向相同 PostgreSQL 数据库的数据库连接。
如果由于任何原因,您希望切换回单数据库连接:
-
在容器内编辑
/etc/gitlab/gitlab.rb
:sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
-
添加以下行:
gitlab_rails['databases']['ci']['enable'] = false
-
重启容器:
sudo docker restart gitlab
下一步
配置安装后,请考虑采取 推荐的下一步,包括身份验证选项和注册限制。