群晖NAS使用Docker安装gitlab服务器

7,371 阅读4分钟

最近想要搭建一个私人代码仓库,所以瞄上了家里的群晖,在群晖里搭建一个gitlab是一个不错的选择!但是在搭建的过程中,发现网上的教程都不是很全面,可能是因为版本不同,总是有这样那样的问题。

本文是根据我实际搭建过程,编写的一个完整教程,一方面是做个记录,另一方面也是希望能够帮助其他人快速的把服务搭建起来。

一、安装

1.1 安装docker

首先你的群晖需要支持docker,不然只能使用其他方法安装了,在套件中心查找并安装docker。

image.png

1.2 安装gitlab

docker安装好后打开,在注册表中搜索gitlab并下载镜像gitlab/gitlab-ce,选择latest

image.png

1.3 配置gitlab

现在完成之后,就可以在映像中看到刚才下载的镜像,然后双击镜像安装,进入高级设置

image.png

1.3.1 存储空间

这里需要提前准备好用来映射的文件夹,分别为 logs-存储日志、config-配置、warehose-数据信息文件

image.png

1.3.2 端口设置

这里的本地端口都需要改一下,不然会和群晖的端口冲突,其中22端口是用于ssh访问的,443端口用于https访问,80端口用于http访问,我这里统一修改了一下本地端口,如果你的群里启用了防火墙,需要在防火墙中开放这几个端口

image.png

1.4 启动gitlab

上面的配置完就可以启动容器了,容器启动过程时间比较长,请耐心等待,等内存保持到一个稳定的数值时就可以访问了

访问地址为 nas的IP:配置的本地端口号,比如: http://192.168.1.11:3080

如果访问出现502则说明服务还没有完全启动,再等一会就可以了

image.png

1.5 登录gitlab

打开后,就会看到下面的页面,默认用户为root,密码我们去上面配置的docker/gitlab/config中查看

image.png

打开文件夹,找到这个文件,使用文本编辑器打开

image.png

我们可以看到Password后面的就是默认密码

image.png

1.6 改成中文界面

登录进来后默认是英文界面,点击头像进入偏好设置

image.png

拉到最后,看到Localization本地化,在Language下拉菜单中找到简体中文,保存后刷新界面就变成中文了 image.png

二、配置访问地址

2.1 ssh访问地址

默认情况下,ssh和http克隆地址都是容器名称,我们需要修改一下配置才能正常的访问代码仓库

2.1.1 重新生成配置

首先我们回到容器,选择详情

image.png

在终端机中,点击新增,进入bash命令行工具,输入gitlab-ctl reconfigure回车,重新生成配置

image.png

2.1.2 修改yaml文件

继续在bash命令行工具,输入如下命令,打开yaml文件

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

找到下面的配置,修改host、port等配置项目,注意port是上面自定义的本地端口

## GitLab settings
  gitlab:
    ## Web server settings (note: host is the FQDN, do not include http://)
    host: 192.168.1.11 # 群晖的IP
    port: 3080 # docker配置的本地端口

2.1.3 修改gitlab.rb配置文件

在群晖的文件管理器中找到docker/gitlab/config文件夹,找到gitlab.rb文件,用文本编辑器打开,找到并修改以下内容

external_url 'http://192.168.1.11:3080'

gitlab_rails['gitlab_ssh_host'] = '192.168.1.11'
gitlab_rails['gitlab_shell_ssh_port'] = 3022

# 设置时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'

2.1.4 重启

保存退出后,重启gitlab,在bash命令行工具中输入下面的命令并回车

gitlab-ctl restart

等待一段时间,重启完成。

2.2 SSH 方式访问提示 SSH ssh_exchange_identification: Connection closed by remote host

上面配置完成后,ssh方式无法访问时,会提示 SSH ssh_exchange_identification: Connection closed by remote host,这是因为gitlab默认是22端口访问的,我们需要修改成与我们设置的本地端口一致。

再次进入docker bash命令行工具,打开sshd_config文件

vi /etc/ssh/sshd_config

找到以下内容,并修改

image.png

去除井号,并修改为3022

image.png

保存退出,然后执行service ssh restart命令,重启ssh服务。

然后就可以愉快的使用gitlab了。