[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问
前言
偶然间看到群晖可以搭建gitlab服务,自己也有这样的需求,于是利用周末时间搭建了gitlab,并在此做个记录。
文章目录
- [[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问](#[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问)
-
- 前言
- 一、安装docker和gitlab镜像
-
- [1.1 安装docker](#1.1 安装docker)
- [1.2 下载gitlab镜像](#1.2 下载gitlab镜像)
- [1.3 安装镜像](#1.3 安装镜像)
- [1.4 端口映射](#1.4 端口映射)
- [1.5 路径配置](#1.5 路径配置)
- [1.6 启动gitlab](#1.6 启动gitlab)
- [1.7 访问gitlab](#1.7 访问gitlab)
- [1.8 配置密码](#1.8 配置密码)
- 二、配置远程访问gitlab
-
- [2.1 打开ipv6设置](#2.1 打开ipv6设置)
- [2.2 DDNS](#2.2 DDNS)
- 三、设置gitlab项目地址
-
- [3.1 修改http地址](#3.1 修改http地址)
- [3.2 修改ssh地址](#3.2 修改ssh地址)
- [3.3 重启gitlab](#3.3 重启gitlab)
前置条件:
-
NAS支持docker。不支持的,把DSM版本升级到7.2以上;特别老型号的,就只能更新机器了
-
内存在8GB以上。gitlab运行起来需要3-4GB内存,而群晖自带的内存只有2GB或者4GB,需要自行购买内存加上
一、安装docker和gitlab镜像
1.1 安装docker
在套件中心搜索「Container Manager」,安装
1.2 下载gitlab镜像
打开「Container Manager」,在「注册表」中搜索gitlab-ce,第一个gitlab/gitlab-ce就是,双击后弹出安装对话框,标签保持默认的latest,点击应用。
1.3 安装镜像
镜像下载完成后,切换到「映像」选项卡,在gitlab映像上点击右键,选择运行。
1.4 端口映射
端口设置中,设置本地端口,这里设置本地的1080端口映射到docker的80端口,其他以此类推。

1.5 路径配置
分别创建logs,config,data来存储日志、配置和数据信息文件,并将docker路径映射到这几个本地路径。
1.6 启动gitlab
其他设置都保持默认值,完成镜像安装向导。切换到「容器」选项卡,能看到新建的容器,点击右键选择「启动」,启动gitlab。双击容器,还能看到更为详细的容器信息和运行日志。当内存使用率平稳,并且运行状态是「良好」时,说明服务已正常启动,可以访问了。
1.7 访问gitlab
在浏览器中输入群晖的ip地址+gitlab端口号,例如192.168.1.3:1080,其中1080是上面设置的端口映射。如果上面的步骤都操作正确,就会显示gitlab的登陆界面,如下所示。
1.8 配置密码
第一次登陆,需要使用管理员账号,用户名是root,初始密码在 /etc/gitlab/initial_root_password 中。登陆以后,记得修改密码。
日常使用,建议在gitlab登陆界面中注册新的用户,新用户经root账号approve后方可使用。
至此,gitlab的安装已经完成。
二、配置远程访问gitlab
面安装好的gitlab只能在局域网中访问。如果想在外网访问,有几种方式:
- 使用内网穿透工具,如frp,nps等
- 公网ip + 端口映射
- ipv6
-
方案1需要一台有公网ip的服务器,方案2很难在运营商处申请到公网ip,方案3相对简单,我最终选用方案3。
-
方案3的缺点是,远程访问时,客户端需要支持ipv6。从我测试的情况看,手机移动网络对ipv6支持很好,家用网络也很容易支持,但是公共场合的WiFi环境会有不支持的情况。
2.1 打开ipv6设置
得益于近年来ipv6的大力推广,我所使用的宽带和路由器已默认支持ipv6。群晖也是默认支持ipv6的,设置的路径是控制面板 - 网络 - 网络界面,在网络界面的编辑对话框中,确保ipv6设置为「自动」。
验证是否支持ipv6的几种方式:
- 在路由器的管理后台,看连接信息中是否有以240开头的ipv6地址
- 在电脑上访问
http://test-ipv6.com
- 在外网计算机上
ping -6 240x:xxx:...(ipv6地址)
ipv6设置生效后,就可以通过ip地址访问gitlab了!
2.2 DDNS
接下来就只有ipv6地址是动态这一个问题了,请出ddns吧!
群晖默认支持ddns,打开控制面板 - 外部访问 - DDNS,选择新增,设置主机名,打开ipv6即可。

设置完成后,在外网浏览器中输入 http://XXXX.synology.me:1080,就能打开内网gitlab了。(XXXX是上一步设置的DDNS主机名)
三、设置gitlab项目地址
上面已经完成了远程访问gitlab的全部配置,但是gitlab并不知道服务的公网域名,默认的ssh/http地址都是容器的hostname,在外网使用git时需要手动把地址替换为公网域名,十分麻烦,需要修改默认的项目地址:
3.1 修改http地址
使用root账号登陆gitlab,点击左侧栏右下角的「Admin Area」,选择Settings - General,在 Custom Git clone URL for HTTP(S) 中填入 http://XXXX.synology.me:1080

3.2 修改ssh地址
编辑 /etc/gitlab/gitlab.rb,找到 external_url 所在的行,把url改为 http://XXXX.synology.me,并取消注释,保存。
bash
external_url 'http://XXXX.synology.me'
然后输入gitlab-ctl reconfigure 回车,重新生成配置(/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml)。
3.3 重启gitlab
重启gitlab,让新配置生效。然后,就可以尽情使用gitlab了!
bash
gitlab-ctl restart