1 服务器信息
- 操作系统:
Centos 7.9 x64
- IP地址:10.10.10.13
- 用户名/密码:
root/geoscene
- 机器名:
ps.geoscene.cd
2 安装Docker
介绍安装可访问外网的情况下,安装稳定版本的Docker
的步骤:
-
更新系统:
yum update
-
卸载旧版本的
Docker
:yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
安装
Docker
依赖项:yum install -y yum-utils
,提供yum-config-manager
访问工具 -
添加
Docker
仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
-
安装
Docker Engine
:yum install docker-ce docker-ce-cli containerd.io
-
启动
Docker
服务:systemctl start docker
-
配置
Docker
开机启动:systemctl enable docker
-
查看
Dokcer
状态:systemctl status docker
2.1 配置Docker使用国内镜像源
在/etc/docker
目录下创建daemon.json
文件,配置使用阿里云镜像源,提高镜像拉取速度
$ cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://ys1k0cd5.mirror.aliyuncs.com"]
}
3 基于Docker安装GitLab
3.1 拉取GitLab社区版镜像
docker pull gitlab/gitlab-ce
,其中ce
表示的是 Community Edition
。
3.2 设置镜像卷的位置
在开始Docker
镜像部署之前,配置一个环境变量:GITLAB_HOME
,指向GitLab
配置文件、日志和数据文件的存储位置
$ mkdir -p /srv/gitlab
$ vi /etc/profile # 然后在文件末尾添加 GITLAB_HOME=/srv/git,保存
$ source /etc/profile
3.3 安装GitLab
使用以下命令启动容器
$ sudo docker run --detach \
--hostname ps.geoscene.cd \
--publish 443:443 --publish 80:80 --publish 23:22 \
--name gitlab \
--restart always \
--add-host=ps.geoscene.cd:10.10.10.13 \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
GitLab
启动时间有点长,大概需要3分钟,启动后,在浏览器中输入http://ps.geoscene.cd:8083
或者http://<ip>:8083
即可访问。
3.4 配置GitLab
3.3.1 设置root账户密码
在浏览器第一次访问GitLab
页面时,会提示让你为root
用户创建密码,在该页面中设置root
账户的密码。
3.3.2 设置中文界面
- 使用
root
账户登录GitLab
- 点击页面右上角用户图标,选择“Setting”
- 在左侧选择“Preference”
- 在“Localzation”中选择“简体中文”
- 点击“Sava Changes”按钮,保存,然后重新刷新页面
3.3.3 取消开放注册功能
部署的GitLab
是在公司局域网内使用,所有团队成员的账号可以由管理员来创建,所以关闭开放注册的功能
- 点击“管理中心”按钮,打开管理中心页面
- 依次点击“设置”、“通用”
- 在“注册限制”配置中取消勾选“Sign-up enabled”
- 点击“Save changes”,保存配置
3.3.4 修改external_url
修改gitlab.rb
文件中的external_url
配置项为:http://<ip>
,其中,ip
为服务器的IP
地址。修改external_url
为ip
地址,能够在发送邮件、克隆项目时使用ip
地址而非hostname
,这在局域网中的使用,是很有用的。
$ vi /srv/gitlab/config/external_url
3.3.5 配置SMTP邮件服务
- 访问运行的
GitLab
容器:docker exec -it gitlab /bin/bash
,其中gitlab
是上一步中配置的--name
的值 - 编辑
/etc/gitlab/gitlab.rb
文件,修改第80-88行、第103-104行
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "xxxx@163.com"
gitlab_rails['smtp_password'] = "password" # 此处注意,不是账号的登录密码而是授权码
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = flase
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['gitlab_email_display_name'] = "user_name"
- 使用命令
gitlab-ctl reconfigure
使配置生效 - 测试邮件服务器是否配置成功:
$ gitlab-rails console
--------------------------------------------------------------------------------
Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
GitLab: 13.7.4 (2f14978e280) FOSS
GitLab Shell: 13.14.0
PostgreSQL: 12.4
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.3.3)
$ Notify.test_email('xx@xx.com', 'title', 'content').deliver_now
如果在指定邮箱中接收到邮件,表示邮件服务器配置成功
- 退出容器,使用命令重启容器:
docker restart gitlab
3.3.2 创建用户
- 使用
root
用户登录GitLab
- 依次点击“管理中心”、“概览”、“用户”
- 点击“新用户”按钮创建新用户
- 输入“名称”、“Username”、“电子邮件”等必填项
- 点击“create user”创建用户