使用群晖NAS 220+ 有段时间了,最近想着省电&统一入口,把家里服务器上的gitlab移植到群晖中。

折腾了一个早上,搞定了。简单记录下步骤:

安装

1. 安装docker

在套件中心搜索到docker即可安装

2. 安装gitlab映像

启动已安装docker套件,在注册表中搜索gitlab, 翻了1页才找到.... 选中下载即可。

3. 创建容器

完成第二步,即可在docker套件左侧菜单中的映像启动了。 选中后点击启动。

注意,整体大概有3G,等下载完成后才能启动。

配置容器

网络

我选择的是桥连,也就是默认。 没有需求,直接下一步。

常规配置

容器名字可以改下,其他看需求,直接下一步。

端口配置

端口选几个没有占用的,和80,22,443对上即可。

80端口本地和容器要保持一致,至于为什么.... 后面配置gitlab.rb时解释

存储空间设置

gitlab官方推荐的的路径装载, 如果盘1的共享目录没有docker/gitlab/XXX,自行创建

docker/gitlab/config -> /etc/gitlab
docker/gitlab/data -> /var/opt/gitlab
docker/gitlab/logs -> /var/log/gitlab 

配置gitlab

由于我的docker中安装gitlab时还没有vim所以都是通过界面操作完成~~~

开始有些

  1. 停止正在运行的gitlab容器
  2. 设置docker/gitlb权限,从file station中找到gitlab点击右键,选择属性 - 权限。 列表中如果没有你的用户名,先添加,在勾选最下面的复选框。

  1. 从file station中找到并编辑docker/gitlab/config/gitlab.rb, 可以安装个文本编辑器套件,如果无法保存,从新设置上一步。
// gitlab.rb 配置项, 去掉 # 并设置选项。
// nas的ip和80对应的自定义映射端口,参考`端口配置。设置http拉去的URL`。 也可以设置`https://192.168.1.100:1443`
external_url 'http://192.168.1.100:1080'
// nas的ip和80对应的自定义映射端口,设置git/ssh拉去代码的前缀地址
gitlab_rails['gitlab_ssh_host'] = '192.168.1.100:1022'
// 【可选】设置https时
# letsencrypt['enable'] = false
# nginx['enable'] = true
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"

配置完成后的效果

关于external_url

方法一 统一本地与容器端口

有必要单独提一下这个配置属性,浪费了我1个小时。 开始,我本地端口配置的是1080,gitlab容器是默认的80。 怎么都不可以访问。

尝试删除external_url中的端口,可以访问.... 来回的验证,我理解应该是这个有一定重定向的操作。

外部1080访问docker-gitlab的80正常,如果设置了external_url端口,如http://xxx:1080,外部访问的就是docker-gitlab的1080端口,可能不能访问...

最后的解决办法是,和外部的端口保持一致。 这样也不需要网上其他教程那样修改其他的配置实现。

方法二 后台设置

登录gitlab后台,在通用中找到 - 自定义HTTP(S)协议Git克隆URL, 设置想要的URL

关于DDNS动态域名访问

  1. 路由器设置端口转发, 此处应该设置的为 1022,1080,1443 指向你的NAS IP地址。
  2. 设置DDNS动态域名
  3. 设置gitlab.rb,我的路径为docker/gitlab/config/gitlab.rbexternal_urlgitlab_ssh_host 域名地址与端口。

gitab 备份

需要进入终端

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore
gitlab-ctl restart

// 备份
gitlab-rake gitlab:backup:create

gitlab 升级

升级之前,一定要备份。 gitlab版本号升级规则要注意,不清楚的可以自己找找。

  1. 在套件中停止容器运行。
  2. 删除容器,删除映射。
  3. 注册表中拉取下载最新的容器
  4. 启动创建容器,名字/配置要和你上次的一致。