群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

释放双眼,带上耳机,听听看~!
作为一个即将转入dev的运维人员,我们需要有一套自己的gitlab代码仓库。家里的设备采用的是dsm920+ 使用docker + frp 将gitlab搭建在家里的nas中,以保证代码仓库的稳定~ 当然也可以采用免费的github。
🤖 由 ChatGPT 生成的文章摘要

群晖Docker 安装

我们需要在群晖的插件中心安装Docker

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

安装Gitlab

点击Docker,选择注册表 搜索gitlab-ce

右击下载镜像

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

选择最新版就可以了

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

接下来我们找到需要运行的容器
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

网络这里默认即可

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

gitlab比较费资源,默认的话我们这里也不做修改了。 当然也可以限制gitlab内存,一般在2-4g左右

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

添加一下环境变量

  • GITLAB_ROOT_PASSWORD 默认root用户的密码
  • GITLAB_HOST gitlab访问地址

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

这里端口主要是用于后面frp以及gitlab pull代码所用,我这里就暂时固定一下

端口不要冲突

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

添加持久化存储

  • logs为可选,其它装载路径为固定

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

然后我们启动

需要等待3-5分钟,如果出现502的状况需要稍等一会。刚启动的时候负载会比较高,等启动完成就可以了

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

在等待一会

访问http://nas_ip:1801 根据我们设置的端口号访问

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

输入我们变量设置的密码123456789登陆gitlab
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

Gitlab 配置

前面为基础配置,那么配置完成后,我们还需要配置gitlab相关设置

设置中文

gitlab默认已经附带中文,我们添加中文就可以了

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

关闭gitlab注册

默认情况下,安装好系统后,gitlab还支持用户注册
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

Frp配置

相关准备如下

  • gitlab.frps.cn 为gitlab 80 域名地址
  • gitlab.frps.cn:1444 为gitlab ssh端口号地址

frpc客户端配置如下

[gitlab-ssh]
type = tcp
local_ip = 192.168.31.198
local_port = 1223
remote_port = 1223

[gitlab-80]
type = tcp
local_ip = 192.168.31.198
local_port = 1801
remote_port = 1801

配置完成后重启frpc容器,测试访问效果
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

nginx代理配置

我这里使用宝塔配置nginx,和普通nginx配置文件配置相同


location ^~ /
{
    proxy_pass http://127.0.0.1:1801/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    add_header X-Cache $upstream_cache_status;
}

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

接下来进行DNSPOD域名解析
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

配置https

我使用宝塔开启https就可以了,普通nginx添加ssl证书即可
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

访问测试
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

gitlab 拉取代码配置文件修改

我们在gitlab中没有配置ssh下载代码的地址和gitlab http下载代码的地址,需要修改gitlab.rb文件

  • 1.停止gitlab (不停止gitlab没有权限修改)
  • 2.修改gitlab.rb文件,在文件中添加gitlab http地址,以及gitlab ssh地址

关闭gitlab容器
群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

找到我们本地持久化的gitlab配置文件

这里的目录是我们容器挂载本地的路径,不知道路径的去docker里面看一下

编辑gitlab.rb

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

修改如下参数

gitlab_rails['gitlab_shell_ssh_port'] = 1223
external_url 'http://gitlab.frps.cn'
#external_url可以找个空白的地方添加

此处不建议直接修改https,会提示重定向过多,直接使用http即可。因为证书我们在外面配置了
如果提示修改没有权限,可以通过ssh进入群晖,使用root用户,或者是修改文件夹权限

测试

接下来我们可以创建项目测试一下

群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

  • 使用http clone gitlab地址测试
    群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

  • 使用ssh clone gitlab地址测试

    因为没有配置ssh免密,所以会有这个报错,但是我们实际上是已经正常了
    群晖Docker安装Gitlab私有仓库并配置FRP端口映射域名访问

温馨提示: 搭建完成后请第一时间修改密码!
温馨提示: 搭建完成后请第一时间修改密码!
温馨提示: 搭建完成后请第一时间修改密码!

给TA打赏
共{{data.count}}人
人已打赏
群晖

群晖Docker导入镜像 解决镜像因为网络下载失败问题

2022-11-17 10:49:03

群晖

DooTask 搭建任务管理工具_代替TB等第三方任务管理工具

2022-12-1 16:14:22

13 条回复 A文章作者 M管理员
  1. 新闻联播老司机

    如果镜像下载失败,可以使用我的下载地址https://d.frps.cn/file/dsm/gitlab_2022-11-16.tar 在上传到群晖上,使用ssh命令docker load -i gitlab_2022-11-16.tar,然后在前台docker控制台重新下载映像

  2. Squealer1280

    最后一步说“因为没有配置ssh免密”,大佬,如何配置ssh免密呢

  3. Squealer1280

    我是这样操作的: 1、在群辉docker中安装gitlab 2、将gitlab与群辉端口映射关系 80————>8080 443———->8443 22————>8022 3、在利用群辉的ddns反向代理将群辉端口代理出去 8080—->48080 8443—->48443 8022—->48022 3、将gitlab里面的配置文件中修改为 gitlab_rails[‘gitlab_shell_ssh_port’] = 48022 external_url ‘http://nas.ddnsurl.com:48080’ 4、将本地的sshkey上传到gitlab 结果: 我用git clone http://nas.ddnsurl.com:48080 的时候可以正常拉取代码(输入用户名密码) 但是我用 git clone ssh:git@nas.ddnsurl.com:48022: 拉取代码时报你上面的那个错误。

  4. Squealer1280

    我是这样操作的: n 1、在群辉docker中安装gitlab n 2、将gitlab与群辉端口映射关系 n 80————>8080 n 443———->8443 22————>8022 n 3、在利用群辉的ddns反向代理将群辉端口代理出去 n 8080—->48080 n 8443—->48443 n 8022—->48022 n 3、将gitlab里面的配置文件中修改为 n gitlab_rails[‘gitlab_shell_ssh_port’] = 48022 n external_url ‘http://nas.ddnsurl.com:48080’ n 4、将本地的sshkey上传到gitlab n n 结果:n 我用git clone http://nas.ddnsurl.com:48080 的时候可以正常拉取代码(输入用户名密码) n 但是我用 git clone ssh:git@nas.ddnsurl.com:48022: 拉取代码时报你上面的那个错误。n

  5. Squealer1280

    求助

    • 新闻联播老司机

      你这个我测试了,确实有点问题。 等我周末查一下吧,多层代理会有这种问题,不行就直接密码登录吧 ,我记得使用密码是可以正常的

    • Squealer1280

      密码是正常的,就是想使用ssh,尝试了几天还是没成功,期待大佬分享解决方法😂

    • 袋鼠啊

      SSH报错这个问题,可能是主机密钥文件权限过高,可以去log目录查看sshd的日志,提示Permissions 0777 for ‘/etc/gitlab/ssh_host_rsa_key’ are too open.It is required that your private key files are NOT accessible by others.This private key will be ignored.我把那三个私钥改成600权限就可以了。

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索