群晖中使用Docker安装备份升级Gitlab
使用群晖NAS 220+ 有段时间了,最近想着省电&统一入口,把家里服务器上的gitlab移植到群晖中。
折腾了一个早上,搞定了。简单记录下步骤:
安装
1. 安装docker
在套件中心搜索到docker即可安装
2. 安装gitlab映像
启动已安装docker套件,在注册表中搜索gitlab, 翻了1页才找到.... 选中下载即可。
3. 创建容器
完成第二步,即可在docker套件左侧菜单中的映像启动了。 选中后点击启动。
注意,整体大概有3G,等下载完成后才能启动。
配置容器
网络
我选择的是桥连,也就是默认。 没有需求,直接下一步。
常规配置
容器名字可以改下,其他看需求,直接下一步。
端口配置
端口选几个没有占用的,和80,22,443对上即可。
80端口本地和容器要保持一致,至于为什么.... 后面配置gitlab.rb时解释
存储空间设置
gitlab官方推荐的的路径装载, 如果盘1的共享目录没有docker/gitlab/XXX
,自行创建
docker/gitlab/config -> /etc/gitlab
docker/gitlab/data -> /var/opt/gitlab
docker/gitlab/logs -> /var/log/gitlab
配置gitlab
由于我的docker中安装gitlab时还没有vim所以都是通过界面操作完成~~~
开始有些
- 停止正在运行的gitlab容器
- 设置docker/gitlb权限,从file station中找到gitlab点击右键,选择属性 - 权限。 列表中如果没有你的用户名,先添加,在勾选最下面的复选框。
- 从file station中找到并编辑
docker/gitlab/config/gitlab.rb
, 可以安装个文本编辑器套件,如果无法保存,从新设置上一步。
// gitlab.rb 配置项, 去掉 # 并设置选项。
// nas的ip和80对应的自定义映射端口,参考`端口配置。设置http拉去的URL`。 也可以设置`https://192.168.1.100:1443`
external_url 'http://192.168.1.100:1080'
// nas的ip和80对应的自定义映射端口,设置git/ssh拉去代码的前缀地址
gitlab_rails['gitlab_ssh_host'] = '192.168.1.100:1022'
// 【可选】设置https时
# letsencrypt['enable'] = false
# nginx['enable'] = true
# nginx['ssl_certificate'] = "/etc/gitlab/ssl/#{node['fqdn']}.crt"
# nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/#{node['fqdn']}.key"
配置完成后的效果
关于external_url
方法一 统一本地与容器端口
有必要单独提一下这个配置属性,浪费了我1个小时。 开始,我本地端口配置的是1080,gitlab容器是默认的80。 怎么都不可以访问。
尝试删除external_url中的端口,可以访问.... 来回的验证,我理解应该是这个有一定重定向的操作。
外部1080访问docker-gitlab的80正常,如果设置了external_url端口,如http://xxx:1080,外部访问的就是docker-gitlab的1080端口,可能不能访问...
最后的解决办法是,和外部的端口保持一致。 这样也不需要网上其他教程那样修改其他的配置实现。
方法二 后台设置
登录gitlab后台,在通用中找到 - 自定义HTTP(S)协议Git克隆URL, 设置想要的URL
关于DDNS动态域名访问
- 路由器设置端口转发, 此处应该设置的为 1022,1080,1443 指向你的NAS IP地址。
- 设置DDNS动态域名
- 设置gitlab.rb,我的路径为
docker/gitlab/config/gitlab.rb
中external_url
与gitlab_ssh_host
域名地址与端口。
gitab 备份
需要进入终端
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore
gitlab-ctl restart
// 备份
gitlab-rake gitlab:backup:create
gitlab 升级
升级之前,一定要备份。 gitlab版本号升级规则要注意,不清楚的可以自己找找。
- 在套件中停止容器运行。
- 删除容器,删除映射。
- 注册表中拉取下载最新的容器
- 启动创建容器,名字/配置要和你上次的一致。