一、环境准备
-
存储
-
存储空间的大小主要取决于您将存储的
Git
仓库的大小,但根据rule of thumb
(经验法则) 您应该考虑多留一些空间用来存储Git
仓库的备份。 -
如果您的服务器有足够大的内存和
CPU
处理性能,GitLab
的响应速度主要受限于硬盘的寻道时间。 使用更快的硬盘(7200
转)或者SSD
硬盘会很大程度的提升GitLab
的响应速度。
-
-
CPU
-
1 核心
CPU
(最多支持100
个用户,所有的workers
和后台任务都在同一个核心工作这将导致GitLab
服务响应会有点缓慢) -
2 核心 CPU (支持500用户,这也是官方推荐的最低标准)
-
4 核心 CPU (支持2000用户)
-
8 核心 CPU (支持5000用户)
-
16 核心 CPU (支持10000用户)
-
32 核心 CPU (支持20000用户)
-
64 核心 CPU (支持40000用户)
-
-
内存
-
1GB 物理内存 + 3GB 交换分区(是最低的要求,但我们强烈反对使用这样的配置)
-
2GB 物理内存 + 2GB 交换分区(支持100用户,但服务响应会很慢)
-
4GB 物理内存(支持100用户,也是官方推荐的配置)
-
8GB 物理内存(支持1000用户)
-
16GB 物理内存(支持2000用户)
-
32GB 物理内存(支持4000用户)
-
64GB 物理内存(支持8000用户)
-
128GB 物理内存(支持16000用户)
-
256GB 物理内存(支持32000用户)
-
二、镜像下载
三、容器启动
-
创建配置文件规划保存目录
mkdir -p /opt/docker/gitlab/config mkdir -p /opt/docker/gitlab/logs mkdir -p /opt/docker/gitlab/data
-
拉取自定义版本镜像(本次实验采用最新版本)
docker pull gitlab/gitlab-ce:latest
-
创建容器
docker run -d \ -p 10443:443 \ -p 10080:80 \ -p 10022:22 \ -v /opt/docker/gitlab/config:/etc/gitlab \ -v /opt/docker/gitlab/logs:/var/log/gitlab \ -v /opt/docker/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce --restart always \ --privileged=true \ --name gitlab \
-
查看容器启动日志
docker logs -f gitlab
四、容器配置
-
固定的
URL
访问地址# 由于容器化的应用配置文件都在容器中 # 在创建容器的时候将必要的配置挂载到宿主机方便修改 # 修改 gitlab.rb 配置(默认情况下是全部注释掉的) vim /opt/docker/gitlab/config/gitlab.rb
# !!! 注意:这些端口的设置都是容器内部的端口,而不是宿主机映射的端口 !!! # 配置 http 协议所使用的访问地址,不加端口号默认为 80 external_url 'http://100.100.100.103' # 配置 ssh 协议所使用的访问地址和端口,不加端口号默认为 443 gitlab_rails['gitlab_ssh_host'] = '100.100.100.103' # 此端口是 run 时 22 端口 gitlab_rails['gitlab_shell_ssh_port'] = 22 # 保存配置文件并退出 :wq
-
配置邮件发送
# 编辑 gitlab.rb 配置 gitlab_rails['gitlab_email_enabled'] = true gitlab_rails['gitlab_email_from'] = '邮箱地址' gitlab_rails['gitlab_email_display_name'] = '发送者名称' gitlab_rails['gitlab_email_reply_to'] = '邮箱地址' gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.exmail.qq.com" gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "邮箱地址" gitlab_rails['smtp_password'] = "密码" # gitlab_rails['smtp_domain'] = "exmail.qq.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = true gitlab_rails['smtp_openssl_verify_mode'] = 'none'
# 查看 gitlab 容器 ID docker ps gitlab # 进入容器 docker exec -it 00d67f41f184 /bin/bash # 进入 gitlab rails 控制台 gitlab-rails console # 测试邮件发送 Notify.test_email('收邮件的收件箱', '111', '222').deliver_now
-
重启
Docker
容器docker restart gitlab
-
浏览器访问效果如下
-
创建用户,被创建用户收到的邮件信息
-
用户通过邮件链接修改密码后收到的邮件信息
-
要求进入项目后收到的邮件