官方文档
GitLab CE(Community Edition)是开源的代码托管平台,支持 Git 仓库管理、CI/CD、Issue 追踪等功能。本文介绍如何通过宝塔面板的 Docker 功能一键安装 GitLab CE,并配置域名、HTTPS 与邮件服务。
安装
使用 宝塔面板 Docker 安装
在宝塔面板 →「Docker」→「项目编排(Compose)」中创建项目,填写下面的 docker-compose.yml 与 .env 文件,一键启动即可。

完整docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| services: gitlab: image: gitlab/gitlab-ce:${VERSION} deploy: resources: limits: cpus: ${CPUS} memory: ${MEMORY_LIMIT} restart: always hostname: ${DOMAIN_HOST} shm_size: '256m' ports: - ${HOST_IP}:${WEB_HTTP_PORT}:80 - ${HOST_IP}:${WEB_HTTPS_PORT}:443 - ${HOST_IP}:${WEB_SSH_PORT}:22 environment: GITLAB_OMNIBUS_CONFIG: | # Add any other gitlab.rb configuration here, each on its own line external_url 'https://${DOMAIN_HOST}' nginx['listen_port'] = 80 nginx['listen_https'] = false nginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" } nginx['client_max_body_size'] = '0' nginx['proxy_read_timeout'] = 600 nginx['proxy_connect_timeout'] = 600 nginx['proxy_send_timeout'] = 600 nginx['gzip_enabled'] = false gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.ym.163.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "robot@domain.com" gitlab_rails['smtp_password'] = "PASSWORD" gitlab_rails['smtp_domain'] = "smtp.ym.163.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = false gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'robot@domain.com' volumes: - ${APP_PATH}/config:/etc/gitlab - ${APP_PATH}/logs:/var/log/gitlab - ${APP_PATH}/data:/var/opt/gitlab labels: createdBy: "bt_apps" networks: - baota_net
networks: baota_net: external: true
|
完整.env
1 2 3 4 5 6 7 8 9 10
| VERSION=latest CONTAINER_NAME=CONTAINER_NAME HOST_IP=127.0.0.1 WEB_HTTP_PORT=10080 WEB_HTTPS_PORT=10443 WEB_SSH_PORT=10022 DOMAIN_HOST=git.domain.com CPUS=0 MEMORY_LIMIT=0MB APP_PATH=/www/dk_project/dk_app/gitlab/gitlab
|
配置说明
external_url:GitLab 对外访问地址,配置为你的域名(如 https://git.domain.com),配合反向代理实现 HTTPS
GITLAB_OMNIBUS_CONFIG:GitLab 的 omnibus 配置入口,所有 gitlab.rb 的配置项都可以写在这里,如 SMTP 邮件、超时时间、上传大小限制等
.env 文件:WEB_HTTP_PORT / WEB_HTTPS_PORT / WEB_SSH_PORT 为宿主机映射端口,APP_PATH 为数据持久化目录,升级或迁移时保留该目录即可
- 首次登录:浏览器访问
https://git.domain.com,使用管理员账号 root,初始密码存放在容器 /etc/gitlab/initial_root_password 文件中,也可用 docker exec gitlab cat /etc/gitlab/initial_root_password 查看
邮件服务配置
官方文档
在docker-compose.yml 中GITLAB_OMNIBUS_CONFIG 修改
网易免费企业邮箱
1 2 3 4 5 6 7 8 9 10
| gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.ym.163.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "xxxx@xx.com" gitlab_rails['smtp_password'] = "password" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = false gitlab_rails['smtp_tls'] = true gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com' gitlab_rails['smtp_domain'] = "smtp.ym.163.com"
|
测试 SMTP 配置
您可以使用 Rails 控制台验证 GitLab 是否能够正常发送电子邮件。在 GitLab 服务器上,执行gitlab-rails console进入控制台。然后,您可以在控制台提示符下输入以下命令,让 GitLab 发送一封测试电子邮件:
1
| Notify.test_email('destination_email@address.com', 'Message Subject', 'Message Body').deliver_now
|