安装Gitlab CE版本
配置$GITLAB_HOME
我们需要一个配置目录,当Docker
中的Gitlab
容器启动时,会将配置文件、日志文件、数据文件挂载到这个目录中。这样我们可以在容器重启后,不会丢失数据。
并且可以方便的在宿主机中,修改Gitlab
容器的配置文件。
首先在想要保存容器数据的目录下创建三个文件夹。
将export GITLAB_HOME=/srv/gitlab
添加到/etc/profile
中,然后执行source /etc/profile
。
在终端中使用echo $GITLAB_HOME
查看是否配置成功。
启动Gitlab容器
这里面有几个重要的参数需要注意:
-p 18443:443
,我们将宿主机的18443
端口映射到Gitlab
容器的443
端口,这样我们就可以通过https://ip:18443
访问Gitlab
。-p 18080:80
,我们将宿主机的18080
端口映射到Gitlab
容器的80
端口,这样我们就可以通过http://ip:18080
访问Gitlab
。-p 18022:22
,我们将宿主机的18022
端口映射到Gitlab
容器的22
端口,这样我们就可以通过ssh -p 18022 git@ip
访问Gitlab
。
配置SSL
证书
我们使用自行注册的证书来配置https
协议。首先我们需要已经准备好的SSL
证书。
配置gitlab.rb
文件
在$GITLAB_HOME/config
目录下,我们可以找到gitlab.rb
文件,这个文件是Gitlab
的配置文件。每当使用gitlab-ctl reconfigure
命令时,Gitlab
会读取这个文件的配置。并通过这个文件中的配置,生成Gitlab
、Nginx
、Postfix
等服务的配置文件。
配置完成后,我们需要执行gitlab-ctl reconfigure
命令,让Gitlab
读取配置文件并生成配置文件。
但是为了方便,我们直接重新启动容器,重新启动也会让Gitlab
读取配置文件。
配置Nginx反向代理
配置完成后,我们需要执行sudo nginx -s reload
命令,让Nginx
重新加载配置文件。
如果每一步都配置正确,那么我们就可以通过https://git.xxx.top
访问我们的Gitlab
了。
如果你的Gitlab
无法访问,可以查看容器的日志,找到错误原因。
配置Gitlab
初始化密码
我们可以通过cat $GITLAB_HOME/config/initial_root_password
查看Gitlab
的初始化密码。需要注意的是,这个文件会在24小时后失效。
我们需要通过这个密码,登录Gitlab
后台,修改密码。
总结
Gitlab
的服务占用实在是太大了,我的2核4G服务器很难吃得消,所以后续使用更轻便的Gitea
来配置。