NAS | 搭建gitlab服务器 | 解决gitlab无法使用clone问题

2 篇文章 0 订阅
2 篇文章 0 订阅

 NAS还有很多扩展玩法,这次和大家介绍下如何搭建自己的gitlab服务器

1. NAS中gitlab的安装

1.1 安装docker

在套件中心先安装Docker。

upload successful

1.2 docker中下载gitlab(这一步很多版本会查询不到注册表,1.3章节附解决方案)

docker下载后打开,注册表搜索:gitlab,双击下载,选latest

upload successful

1.3 NAS中docker注册表查询失败的解决办法

a.常用的解决方法(但有一定局限性,至少不适用于我)

修改国内加速镜像地址和修改DNS,具体步骤如下:

1) 群晖docker——注册表——设置——选中Docker Hub——编辑——启用注册表镜像——在里面填写国内加速镜像地址:https://registry.docker-cn.com,然后重启docker

upload successful

2) 控制面板——网络——手动配置DNS服务器,在里面填写国内公用DNS,一般用阿里的或者114

upload successful

如果这两步做完docker注册表就可以正常使用,接下来就不用再看啦,如果这两步做完仍然解决不了问题,那接下来看b方案。

b. SSH方案

图形界面无法加载,但是通过SSH可以顺利拉取镜像,只要能够顺利拉取镜像,再在图形界面进行部署,就方便多了(部署也可以在SSH里面进行,这里介绍比较方便的图形部署)。

1) SSH连接到NAS 2) 进入root模式

sudo -i

下载最新版gitlab

docker pull gitlab/gitlab-ce:latest

然后返回NAS的docker里的映像,你就会发现刚才拉取的镜像已经在里面了,接下来你就可以愉快的通过图形界面进行容器的安装了

upload successful

1.4 安装镜像

在映像栏,双击gitlab-ce镜像进行安装。

upload successful

1.5 路径配置

点击高级设置——存储空间——添加文件夹

这里需要添加对应的文件夹到docker目录下,可以在file station中,打开docker目录,创建新的gitlab目录,然后在gitlab目录下,分别创建logs,config,data来存储日志、配置和数据信息文件。装载路径手动填写。(我这里之前配置过,主要截文件路径供参考)

upload successful

1.6 端口配置

设置完路径后点击端口设置,设置一个本地端口,这里指定80容器端口对应本地端口1080,22端口对应的本地端口改为8886。避免自动获取而带来端口变化而导致的访问问题。

upload successful

upload successful

1.7 启动容器

其他的暂时不用改,直接点击应用,并启动这个docker。正常需要等待一段启动时间,内存飙升到一个比较稳定的数值时,正常就可以访问gitlab的页面了。

upload successful

1.8 访问gitlab

浏览器输入NAS的ip地址+刚才配置的本地端口号,比如192.168.0.123:1080,这样来访问gitlab,如果此时出现:

upload successful

错误502,这表示服务还没起来,可以再等等。

1.9 配置密码

首次登录,会要求设置管理员密码,可以回到NAS的docker/config目录下,找到名为initial_root_password的文件,里面会有初始密码

upload successful

输入后就可以本地正常访问gitlab了,但我们通常要实现外部网络访问,在公司或家里都可以使用,所以接着往下看。

2. 将gitlab加入到反向代理列表:(反向代理参考我前面的文章,链接附在结尾)

2.1 配置frpc

SSH连接到NAS,进入frpc文件目录

cd /root/data/docker_data/frpc

vi frpc.ini

增加下面配置,remote_port可以根据自己喜好更改,不与其他端口冲突即可

```text
[Gitlab]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 8888

[Gitlab_ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 8886
remote_port = 8866

```

upload successful

查看frpc进程

ps -aux|grep frpc|grep -v grep

kill掉进程

2.2 重启frpc

nohup ./frpc -c ./frpc.ini &

此时可以通过云服务器远程访问gitlab:http://IP:8888

虽然可以访问配置仓库,但发现无法直接clone项目,地址无法被识别,需要修改配置文件

3. 解决无法clone代码问题(SSH、HTTP全支持)

解决思路有两种,如果NAS有域名,可以将地址配置为域名。但本人由于国内域名备案较麻烦,还未申请。(国外域名托管后经常被疯狂攻击,后来就不怎么使用了)

这里介绍第二种方案,修改配置文件

依然是在终端设置,SSH到NAS

  sudo -i

进入config目录

  cd /volume1/docker/gitlab/config

  vi gitlab.rb

增加extern_url为云服务器IP + 8888端口(本地1080端口对应的8888,分配给HTTP克隆代码)
IP填写对应的云服务器IP,ssh的port设为上面8886端口对应的8866端口

external_url 'http://IP:8888/'
gitlab_rails['gitlab_ssh_host'] = 'IP'
gitlab_rails['gitlab_shell_ssh_port'] = 8866
nginx['listen_addresses'] = ['*']
nginx['listen_port'] = 80
gitlab_rails['time_zone'] = 'Asia/Shanghai'

upload successful

重启容器后可以用HTTP拉取代码了,但SSH方式访问会提示 SSH ssh_exchange_identification: Connection closed by remote host。这是因为gitlab默认是22端口访问的,我们需要修改成与我们设置的本地端口一致。

4. 解决无法通过SSH直接克隆代码问题

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

upload successful

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

upload successful

打开sshd_config文件

vi /etc/ssh/sshd_config

找到以下内容,并修改

upload successful

去除井号,并将22修改为8886

upload successful

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

重启docker镜像,这时可以通过ssh的8866端口拉取代码了!

5. 结束语

本文主要介绍在NAS中搭建属于自己的gitlab服务器,关于git的具体使用以及ssh key的配置等这里没做介绍,望自行了解

友情链接

NAS | 搭建gitlab服务器 | 解决gitlab无法使用clone问题 | 山不在高 (shanbuzaigao.cn)

NAS设置内网穿透 | Nginx反向代理 | 外网访问 | 配置华为云服务器 | 山不在高 (shanbuzaigao.cn)

NAS设置内网穿透 | Nginx反向代理 | 外网访问 | 配置华为云服务器_山不在高.的博客-CSDN博客

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值