百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

群晖使用Docker安装并配置GitLab服务器

liuian 2024-12-24 14:18 105 浏览

群晖(Synology)内置的GitLab版本已经很老了,虽然对系统资源的利用较少,但是不利于使用。因此,要在群晖上安装GitLab服务器,最好还是通过内置的Docker进行安装,这样可以安装较新的GitLab版本,也可以通过Docker对GitLab进行更新。

需要注意的是,由于GitLab对系统要求较高,官方不建议在低于4g配置的机器上进行安装,在低配置的机器上安装可能会导致运行卡顿或者频繁出现502错误。

本文虽然是在群晖下进行安装,但由于是通过Docker进行安装的,在其他linux版本如Ubuntu下应该也适用(未测试)。


本文安装需要基于Docker,在群晖下可以直接选择Docker套件安装Docker,在其他发行版下可以参考相关安装说明进行安装。

1.通过Docker安装GitLab


在Docker中搜索官方的gitlab-ce镜像,双击下载镜像。等同于在其他发行版下拉取镜像。

镜像拉取完之后,在映像中双击gitlab镜像来创建容器,点击“高级选项”进行配置。

在系统的Docker文件夹下创建以下三个文件夹,并在“卷”选项卡选择以下配置:

Local locationContainer locationUsage

/docker/gitlab/data /var/opt/gitlab 存储数据

/docker/gitlab/logs /var/log/gitlab 存储日志文文件

/docker/gitlab/config /etc/gitlab 存储配置文件


在“端口”选项卡选择以下配置:

本地 端口容器 端口类型

30022 30022 tcp

30443 30443 tcp

30000 80 tcp


上述端口仅为本次配置的端口,实际搭建时可以根据需要对端口进行修改,本次安装中30022端口和30443端口分别用于ssh访问和https访问,在其他说明文档中,容器端口可能配置为默认的22和443,但是在实践中都出现了无法访问的问题,因此本文将本地端口和容器端口设置为同样端口,并在后续进行配置。


设置完成后,需要在群晖的防火墙里开放上述端口。如果是使用Ubuntu或者其他linux系统,同样需要打开防火墙类似端口。


安装完成后,可以通过 http://<你的域名>:30000 端口访问GitLab,首次登录时需要设置root用户的密码,设置完之后可通过root账户登录并设置参数。


在群晖中,如果设备没有公开IP,可能还需要通过花生壳内网穿透等服务,才能访问GitLab服务器。


2. 设置https访问


首先需要为域名申请SSL证书,可以通过Let's Encrypt 或者阿里云等网站获取免费或者收费的证书,证书分为cert或pem文件以及key文件两个(后缀可能不一样,但都是证书文件和密钥文件两个)并将证书上传至 /etc/gitlab/ssl/? 文件夹中。在群晖的FileStation里面找到文件 ?/docker/gitlab/config/gitlab.rb? 进行修改,也可以通过进入Docker的终端里,找到 ?/etc/gitlab/gitlab.rb? 文件进行修改,实际修改的是同一个文件。


在gitlab的容器的终端机选项下,选择新建一个bash终端,并通过编辑器进行修改,如 ?nano /etc/gitlab/gitlab.rb? ,也可以通过ssh方式登录群晖,修改/docker/gitlab/config/gitlab.rb文件。设置以下参数。有关nginx配置的官方说明.


配置完成后可以通过 ?https://<你的域名>:30443? 方式访问网站。


#line 33
external_url 'https://<你的域名>:30443'
#line 1267
nginx['enable'] = true
nginx['redirect_http_to_https']=true
#line 1281
nginx['ssl_certificate'] = "/etc/gitlab/ssl/cert.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl//private.key"

3.配置邮箱认证

在GitLab中,系统可能需要通过邮件系统来完成用户注册邮箱确认以及事件提醒等功能,因此有必要配置一个邮箱来进行系统邮件发送。这同样需要编辑上述gitlab.rb配置文件,找到以下邮箱配置内容进行配置和修改,以163邮箱为例。

#line 81-107
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'example@163.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab-ce'
gitlab_rails['gitlab_email_reply_to'] = 'example@163.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "example@163.com"
gitlab_rails['smtp_password'] = "example"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "plain"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'

4. GitLab SSH 方式访问

首先需要在上述gitlab.rb配置文件中修改以下配置:

#line 602
gitlab_rails['gitlab_shell_ssh_port'] = 30022

在容器使用默认22端口时,ssh方式无法访问,提示 ?SSH ssh_exchange_identification: Connection closed by remote host? 。因此,通过进入Docker bash并修改 ?/etc/ssh/sshd_config? 文件,修改 ?Port 30022? ,之后运行 ?service ssh restart? 重启ssh服务后,可以正常通过ssh方式进行代码访问。


其他文档中关于上述ssh错误的解决方案如下,可供参考:

1、检查 /etc/hosts.deny 和 /etc/hosts.allow 里面是否屏蔽了某些帐户;
2、删除 ~/.ssh/known_hosts 里面的相关服务器条目试一下;
3、在某些发行版上升级 glibc 或 openssl 等软件包以后需要重启一下 sshd;
4、由于 ssh 试探或者 ssh 连结数太多,/etc/ssh/sshd_config 里面的 MaxStartups 默认参数配置不够用;  

修改 MaxStartups 30:60:100

5. Docker GitLab备份


备份可分为手动和自动两种,在Docker映像和容器中,可以点击设置,导出,即可进行完整手动备份(容器需要在停止状态下备份)。


5.1 要实现自动备份,需要创建备份脚本。

#!/bin/bash
docker exec -t gitlab-ce gitlab-rake gitlab:backup:create CRON=1
echo "Do"

windows操作需要注意换行,CRLF切换为LF

另存脚本到 ?/volume1/nas19_backup/NAS/sh/gitlab_backup.sh? 目录中

这里需要注意的是 ?/volume1? 是群晖共享文件夹的根目录

5.2 群晖创建计划任务

管理员身份进入DSM > 控制面板 > 计划任务 > 新增 > 计划的任务 > 用户定义的脚本 > 任务设置 > 运行命令

?bash /volume1/nas19_backup/NAS/sh/gitlab_backup.sh

备份后的文件所在目录为

Local location Container location

/docker/gitlab/data/backups /var/opt/gitlab/backups

5.3 还原备份

  • 重新部署gitlab,并且新的gitlab版本必须与旧的gitlab一致
  • 复制备份到gitlab的backup目录
  • 恢复gitlab
cp 1550764828_2019_02_21_11.7.5_gitlab_backup.tar /opt/gitlab/data/backups/
chmod +r /opt/gitlab/data/backups/ 1550764828_2019_02_21_11.7.5_gitlab_backup.tar
docker exec -it gitlab-ce gitlab-rake gitlab:backup:restore

相关推荐

高端显卡(带DVI接口的最高端显卡)

高级显卡有很多用处。首先,它可以提高电脑图形和处理的高清度和速度,使得用户可以流畅的玩游戏、观看高清电影等。其次,高级显卡可以支持更加复杂的计算任务,比如机器学习、科学计算等,因此在这些任务中能够提升...

flash动画软件(Flash动画软件下载)

你好,如果希沃白板里的Flash图标无法播放,可能是因为以下原因:1.缺少Flash插件:Flash图标需要AdobeFlashPlayer插件来播放。请确保您的设备上已安装最新版本的Flash...

windows10多少钱一年(windows10 多少钱)

2023年版的Windows10将是一个经过进一步改进和优化的操作系统。它将提供更快的启动速度和更高的性能,同时增强了安全性和稳定性。用户界面可能会有一些改变,以提供更好的用户体验。此外,它还将支持...

outlook官方下载(outlook官网app下载)

1、解锁手机进入系统后,在手机中选择电子邮箱的应用进入。2、进入应用主界面后,在页面中选择exchange的选项,进入邮箱的添加界面。3、点击后,在页面中输入自己的outlook邮箱地址和密码,点击登...

我wifi连上却不能上网怎么办

wifi能够连接,但是不能上网,说明用户使用的wifi网络没有成功连接外网。这个情况出现的原因可能有如下几点:用户使用的无线路由器没有开启自动拨号功能。用户填写的账号密码有误,无法成功联网。当地线路故...

家庭用win10哪个版本好(windows10家庭用什么版本)

1.家庭版:仅包含基础功能,在所有版本中功能最少,适合普通用户;2.专业版:包含大量高级功能,适合高端用户群体使用;3.企业版:针对企业用户推出的版本,提供批量授权。1.家庭版从名称中就可以知道主要面...

u盘修复工具破解版(u盘修复工具下载)

1、首先打开电脑浏览器,搜索“嗨格式数据恢复大师”,选择软件主界面中的“快速扫描恢复”模式对磁盘进行扫描。2、当扫描模式选择完成后,也就需要选择“原数据文件所存储的位置”,此时可直接选择我们所插入的“...

电脑如何连接宽带步骤(电脑如何连接宽带步骤操作)
电脑如何连接宽带步骤(电脑如何连接宽带步骤操作)

电脑连接宽带连接方法如下1、首先,打开控制面板,进入“网络和Internet”选项2、然后,点击打开“网络和共享”选项;3、接着,我们点击“设置新的连接或网络”选项;4、这里我们选择宽带(PPPoE)选项,该选项就是表示宽带上网5、然后,输...

2025-12-27 14:55 liuian

邮箱免费注册入口(个人邮箱注册申请免费注册)

163邮箱官网注册入口是;https://smart.mail.163.com/login.htm163邮箱注册方法;1在浏览器搜索“网易邮箱”。2进入网易邮箱官网https://smart.mail...

windows7如何换主题(win7系统如何更改主题)

在Windows7中更改主题的方法如下:1.点击桌面空白处,选择“个性化”选项。2.在“个性化”窗口中,可以直接选择几种预设好的主题,或者点击“获取更多主题”在线下载更多主题。3.如果要自定义...

thinkpad x390(thinkpadx390哪一年的)

x390好,他是最新的芯片,他的性能方面得到了很大的提升,用的也是最新的工艺和材料,所以在性能表现上提升了很。他用的是最新的处理方式,在使用的时候不需要大安心。他发热发烫,对电量的控制也做得比较到位,...

iso文件要解压吗(iso文件要解压吗手机)

一般来说,整个一套的iso体系文件还是比较多的,如果是通过邮件等形式来传送的话,一般都会把文件进行压缩后再传送,以便文件能够顺利发送。所以在接收到这些文件后需要解压后才能够查阅。如果电脑里没有解压程序...

sd卡未格式化是什么意思(sd卡提示格式化但无法格式化)

存储卡未格式化意味着该SD卡上没有被操作系统识别的文件系统。这通常发生在初次使用SD卡时,或者在从另一台设备中移除SD卡后插入到新设备时。在这种情况下,您需要格式化SD卡以便于使用。请注意,格式化会清...

附近上门维修电话(附近修门窗上门维修电话)

供电公司的资产产权到用户的计量箱计量箱以下的线路和室内设备属于用户资产,所以9598电工有权可以拒绝电表以下线路的维修,如果房屋内的线路或电苗以下线路存在损坏故障无法正常使用时,可以找相关维修机构进行...

ghost硬盘镜像(ghost硬盘镜像备份)

答具体方法如下步骤一:打开“ToDisk”对拷选项(1)首选打开Ghost工具,进入界面后,选择“Local”→“Disk”→“ToDisk”。步骤二:选择源数据硬盘(2)我们需要选择源数据硬盘...