目录

群晖NAS-群晖Docker安装gitlab-ipv6-远程访问

[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问

[群晖NAS] 群晖Docker安装gitlab + ipv6 远程访问

前言

偶然间看到群晖可以搭建gitlab服务,自己也有这样的需求,于是利用周末时间搭建了gitlab,并在此做个记录。

前置条件:

  1. NAS支持docker。不支持的,把DSM版本升级到7.2以上;特别老型号的,就只能更新机器了
  2. 内存在8GB以上。gitlab运行起来需要3-4GB内存,而群晖自带的内存只有2GB或者4GB,需要自行购买内存加上

一、安装docker和gitlab镜像

1.1 安装docker

在套件中心搜索「Container Manager」,安装
https://i-blog.csdnimg.cn/direct/d624eb577a4c4ad3a6bf52da298fc558.png

1.2 下载gitlab镜像

打开「Container Manager」,在「注册表」中搜索gitlab-ce,第一个gitlab/gitlab-ce就是,双击后弹出安装对话框,标签保持默认的latest,点击应用。
https://i-blog.csdnimg.cn/direct/80434f300d054b5bb7896d5f3661227f.png

1.3 安装镜像

镜像下载完成后,切换到「映像」选项卡,在gitlab映像上点击右键,选择运行。
https://i-blog.csdnimg.cn/direct/d11953e6e2114f2ea11573e21fd58125.png

1.4 端口映射

端口设置中,设置本地端口,这里设置本地的1080端口映射到docker的80端口,其他以此类推。

https://i-blog.csdnimg.cn/direct/9d449959a1fd41099e50d79e9f086893.png

1.5 路径配置

分别创建logs,config,data来存储日志、配置和数据信息文件,并将docker路径映射到这几个本地路径。
https://i-blog.csdnimg.cn/direct/c6261b272ded46b49c336e0ff9514d1f.png

1.6 启动gitlab

其他设置都保持默认值,完成镜像安装向导。切换到「容器」选项卡,能看到新建的容器,点击右键选择「启动」,启动gitlab。双击容器,还能看到更为详细的容器信息和运行日志。当内存使用率平稳,并且运行状态是「良好」时,说明服务已正常启动,可以访问了。
https://i-blog.csdnimg.cn/direct/cc8c3829cbee45e0b28bf2be76545842.png

1.7 访问gitlab

在浏览器中输入群晖的ip地址+gitlab端口号,例如192.168.1.3:1080,其中1080是上面设置的端口映射。如果上面的步骤都操作正确,就会显示gitlab的登陆界面,如下所示。
https://i-blog.csdnimg.cn/direct/b19805b039a344c3938c62ac3e6be86f.png

1.8 配置密码

第一次登陆,需要使用管理员账号,用户名是root,初始密码在 /etc/gitlab/initial_root_password 中。登陆以后,记得修改密码。

日常使用,建议在gitlab登陆界面中注册新的用户,新用户经root账号approve后方可使用。

至此,gitlab的安装已经完成。
https://i-blog.csdnimg.cn/direct/ee784e92d8f54bec9242b0e1630ae07d.png

二、配置远程访问gitlab

面安装好的gitlab只能在局域网中访问。如果想在外网访问,有几种方式:

  1. 使用内网穿透工具,如frp,nps等
  2. 公网ip + 端口映射
  3. ipv6
  • 方案1需要一台有公网ip的服务器,方案2很难在运营商处申请到公网ip,方案3相对简单,我最终选用方案3。
  • 方案3的缺点是,远程访问时,客户端需要支持ipv6。从我测试的情况看,手机移动网络对ipv6支持很好,家用网络也很容易支持,但是公共场合的WiFi环境会有不支持的情况。

2.1 打开ipv6设置

得益于近年来ipv6的大力推广,我所使用的宽带和路由器已默认支持ipv6。群晖也是默认支持ipv6的,设置的路径是控制面板 - 网络 - 网络界面,在网络界面的编辑对话框中,确保ipv6设置为「自动」。
https://i-blog.csdnimg.cn/direct/ec8b07ad933449238f32754b064d706f.png
验证是否支持ipv6的几种方式:

  • 在路由器的管理后台,看连接信息中是否有以240开头的ipv6地址
  • 在电脑上访问 http://test-ipv6.com
  • 在外网计算机上 ping -6 240x:xxx:...(ipv6地址)
    https://i-blog.csdnimg.cn/direct/1aeec6c3b3884d2982a4fa0404cac914.png
    ipv6设置生效后,就可以通过ip地址访问gitlab了!
    https://i-blog.csdnimg.cn/direct/0f1a57efdbb84d729b712a0abeb7139d.png

2.2 DDNS

接下来就只有ipv6地址是动态这一个问题了,请出ddns吧!

群晖默认支持ddns,打开控制面板 - 外部访问 - DDNS,选择新增,设置主机名,打开ipv6即可。

https://i-blog.csdnimg.cn/direct/6a315ae7474145b9a897efe3326b2ccb.png
设置完成后,在外网浏览器中输入 ,就能打开内网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

https://i-blog.csdnimg.cn/direct/abd0694738384bfda624c44911a1f108.png

3.2 修改ssh地址

编辑 /etc/gitlab/gitlab.rb,找到 external_url 所在的行,把url改为 ,并取消注释,保存。

external_url 'http://XXXX.synology.me'

然后输入gitlab-ctl reconfigure 回车,重新生成配置(/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml)。

3.3 重启gitlab

重启gitlab,让新配置生效。然后,就可以尽情使用gitlab了!

gitlab-ctl restart