在本教程中,您将学习如何使用 Docker 和 Docker Compose 来搭建 GitLab 代码仓库管理平台,并配置 SSL 加密与 LDAP 认证。GitLab 是一个流行的 Git 仓库管理工具,广泛用于源代码管理与团队协作。本教程将帮助您在Linux环境中轻松搭建一个私有 GitLab 服务,并通过 LDAP 实现集中的用户认证。
在开始之前,您需要准备一个 Linux 服务器并安装 Docker 和 Docker Compose。可以通过以下命令进行安装:
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo DOWNLOAD_URL=https://mirrors.ustc.edu.cn/docker-ce sh get-docker.sh
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
我们将使用 Docker Compose 来启动 GitLab 服务,确保 Docker 容器能够持久存储数据和配置。
docker-compose.yml
配置文件在您的服务器上,创建一个新的目录用于存放 GitLab 的配置和数据。进入该目录并创建 docker-compose.yml
文件。
mkdir ~/gitlab
cd ~/gitlab
nano docker-compose.yml
将以下内容粘贴到 docker-compose.yml
文件中:
version: '3'
services:
gitlab:
image: 'gitlab/gitlab-ce:latest' # 或者是 gitlab-ce 版本
container_name: 'gitlab'
restart: always
hostname: 'gitlab.algs.tech'
ports:
- '80:80'
- '443:443'
- '22:22'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.algs.tech'
nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/key.pem"
gitlab_rails['ldap_enabled'] = true
gitlab_rails['ldap_servers'] = YAML.load <<-EOS
main:
label: 'LDAP'
host: 'openldap.algs.tech' # 替换为您的 LDAP 服务器地址
port: 389 # LDAP 端口
uid: 'uid' # LDAP 用户名属性
bind_dn: 'cn=admin,dc=webcoding,dc=tech' # LDAP 管理员 DN
password: 'abc2024XYZ' # LDAP 管理员密码
encryption: 'plain' # 如果需要加密,改为 'start_tls' 或 'simple_tls'
verify_certificates: true # 如果使用 TLS 并需要跳过证书验证,设置为 false
active_directory: true # 如果使用 Active Directory,设置为 true
allow_username_or_email_login: false # 是否允许使用用户名或邮件登录
lowercase_usernames: false
block_auto_created_users: false
base: 'dc=webcoding,dc=tech' # LDAP 基础 DN
user_filter: '' # 额外的用户过滤条件
group_base: ''
admin_group: '' # 可以设置管理员组
sync_ssh_keys: false
EOS
# SMTP 配置
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtphz.qiye.163.com" # SMTP 服务器地址
gitlab_rails['smtp_port'] = 465 # SMTP 端口
gitlab_rails['smtp_user_name'] = "noreply.gitlab@aiapp.pro" # 发件邮箱
gitlab_rails['smtp_password'] = "password" # 发件邮箱密码
gitlab_rails['smtp_domain'] = "qiye.163.com" # 域名
gitlab_rails['smtp_authentication'] = "login" # 认证方式,可选"plain", "login", "cram_md5"
gitlab_rails['smtp_enable_starttls_auto'] = false # 启用 STARTTLS
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer' # SSL 验证模式,可选"none", "peer", "client_once", "fail_if_no_peer_cert"
gitlab_rails['gitlab_email_from'] = 'noreply.gitlab@aiapp.pro'
user['git_user_email'] = 'noreply.gitlab@aiapp.pro'
volumes:
- '$GITLAB_HOME/config:/etc/gitlab'
- '$GITLAB_HOME/logs:/var/log/gitlab'
- '$GITLAB_HOME/data:/var/opt/gitlab'
- '/etc/certs/ssl/algs.tech:/etc/gitlab/ssl'
shm_size: '256m'
确保您已经拥有有效的 SSL 证书和密钥,将它们放置在 /etc/certs/ssl/algs.tech/
目录下,并且它们的权限设置正确。
在配置好 Docker Compose 文件后,您可以使用以下命令启动 GitLab 服务:
docker-compose up -d
此命令会启动 GitLab 容器并在后台运行。
https://gitlab.algs.tech
。在 GitLab 登录页面,尝试使用 LDAP 用户进行登录。确保您正确配置了 LDAP 地址、端口、管理员 DN 和密码。
如果需要启用 Git 通过 SSH 的方式推送和拉取代码,可以配置 GitLab 使用 SSH。您可以参考 GitLab 官方文档 了解更多配置内容。
恭喜!您已经成功搭建了一个内网 GitLab 代码仓库管理平台,并实现了 SSL 加密和 LDAP 集成。通过这个平台,您的团队可以更加安全、高效地进行代码管理。
你可以将这个过程录制成教程视频,并将其发布到 YouTube 或比例比例平台,帮助更多的开发者和 IT 管理员搭建类似的环境。