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

[群晖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)

前置条件:

  1. NAS支持docker。不支持的,把DSM版本升级到7.2以上;特别老型号的,就只能更新机器了

  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只能在局域网中访问。如果想在外网访问,有几种方式:

  1. 使用内网穿透工具,如frp,nps等
  2. 公网ip + 端口映射
  3. 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
相关推荐
Rinleren3 小时前
DevOps 工具链:CI/CD 概念解析 + Git 版本控制 + GitLab 仓库 + Jenkins 自动化全教程
自动化·gitlab·jenkins
夏天是冰红茶4 小时前
使用Docker将PyQt深度学习项目打包成镜像
运维·docker·容器
龙门吹雪5 小时前
Docker 安装 canal 详细步骤
运维·docker·容器·canal·mysql binlog 日志·增量数据订阅消费
杨浦老苏6 小时前
文件共享应用程序Palmr
docker·群晖·网盘
啥也不会的小胡7 小时前
深入理解 Docker:从入门到实践
docker·容器
Lin_Aries_042114 小时前
容器化简单的 Java 应用程序
java·linux·运维·开发语言·docker·容器·rpc
人逝花落空.15 小时前
docker容器的三大核心技术UnionFS(下)
运维·docker·容器
Insist75315 小时前
基于OpenEuler部署kafka消息队列
分布式·docker·kafka
程序猿费益洲17 小时前
Docker 网络详解:(一)Linux 网络虚拟化技术
linux·网络·docker·容器·云计算