暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

群晖使用Docker搭建GitLab

林元皓 2020-02-17
3226

代码管理

  • 常用的代码管理工具



版权于价格架构于模型支持的系统优势/特点限制/缺点主要的用户群及产品
Subversion免费集中式Linux、
Windows、
Mac
简单、易用本地代码的每个目录下面都会多出一个目录与一些用户版本控制的文件各大开源社区、各种传统的开源产品、中小软件公司
Perforce免费/收费集中式Linux、
Windows、
Mac
简单、易用,本地代码库中没有多余、无关的文件与目录昂贵各大主流商业公司,比如微软、Google等
Git免费分布式Linux、
Windows、
Mac
支持分布式
支持快速本地分支
支持本地离线管理代码,比如提交、看日志
能删除分支
学习曲线较高,初学者容易出错各大开源社区、各种开源软件
Mercurial免费分布式Linux、
Windows、
Mac
隐藏分支,简单易用社区规模不大
用户规模较小
对非英文文字支持有点问题
不能删除分支
核心功能较少,需要通过扩展才能获得更多的功能
某些开源社区和中小软件公司
GVFS免费分布式Windows支持单一、超大型代码库微软开发并发布的,需要特定的Git服务器支持,现在仍在开发过程中微软公司和一些开源社区的项目


  • 常用的代码管理系统



版权与价格支持系统优势/特点主要用户群/产品主要开发语音
VirtualSVN Server免费/收费Windows简单、易用
很好地支持Windows
商业支持
各商业软件开发公司和团队、商业软件系统C
GitLab Server免费/收费Linux、
Windows、
Mac
权限管理简单
类似于GitHub
支持Merge Request
集成缺陷跟踪
各开源社区、各种传统的开源产品、中小软件公司Ruby
Gerrit Server免费/收费Linux、
Windows、
Mac
权限管理灵活
支持基于代码提交的Push Code Review
各大开源社区与大型软件系统、大型商业软件公司Java


  • 从Subversion迁移到Git的常用工具与方法



版权与价格架构与模型支持系统优势/特点限制/缺点主要的用户群
SubGit收费基于代理服务器动态转换多种系统商业支持
支持代码镜像
支持大规模代码库导入
商业收费,对于中心端配置管理者有一定的学习曲线商业用户
git-svn免费基于本地代码库动态转换多种系统Git工具库默认支持
简单、免费
对于每个开发人员有一定的学习曲线大部分普通用户
手动免费手动转换所有系统可以随意定制流程复杂,容易出错中小规模用户


  • 常用云端代码管理系统



版权与价格优势/特点限制/缺点主要的用户群
Sourceforge免费历史悠久
传统的经典开源项目很多
只支持Subversion一些在使用Subversion开源社区和开源项目的用户
GitHub免费/收费当前最大的免费云代码管理平台,使用人数多,支持良好服务器在国外,只支持Git世界上大部分开源社区、开源项目以及很多商业用户
GitLab免费/收费开源、免费,集成了各种开发流程管理的统一平台,并且可以私网部署其云服务器在国外,只支持Git大部分中小企业,其需求是成本低和可以私网部署
Bitbucket免费/收费同时支持Git和Mercurial,支持免费的私有代码库服务器在国外一些商业用户
Coding免费/收费服务器在国内,支持项目管理和WebIDE服务器在国内国内的免费和商业用户
码云免费/收费服务器在国内,免费创建私有代码库,支持项目管理服务器在国内国内的免费和商业用户
阿里云Code免费/收费服务器在国内,现在支持免费创建私有代码库,以后可能需要收费,支持项目管理正在公测国内的免费和商业用户
  • 选择GitLab

Perforce最好用,Git用多了就习惯了...
不用多说私有代码仓库的首选就是GitLab。
优点:有很好工程页面管理,,集成了各种开发流程管理的统一平台,支持私网部署。
缺点:太吃内存,启动GitLab时候就需要2G内存,我的群晖只有2G内存,害得我又扩展了4G内存。


NAS简介

NAS主要的用途就是文件集中存储与共享,然而一些高端NAS(通常指CPU性能好、运行内存大的硬件)可以通过安装一些第3方插件的形式来扩展系统功能。

群晖NAS自带的套件中心可以扩展许多有趣的功能如在线网盘(Synology Drive)、在线协作Office、公有云同步等。其中有两个特别有用的套件:

  • Virtual Machine Manager(虚拟机管理)

  • Docker

你的群晖NAS需要支持安装Docker,支持Docker的表现就是,贵...


环境

  • 群晖 DS218+ NAS

  • 内网穿透工具 cpolar


安装配置

GitLab安装方法

在群晖上跑Gitlab基本上就是靠Docker了。其安装途径有两个。

  • 使用套件中心安装Gitlab套件。


  • 直接在Docker套件中安装。在注册表中


众多教程都是使用Docker套件中安装Gitlab映像来搭建的。主要原因是自带的Gitlab相关设置问题以及配置文件位置不好找,我还是推荐使用套件中心安装Gitlab套件的方法。

套件中心安装GitLab套件

  • 套件中心找到GitLab套件,点击安装套件即可。安装完成后,可以在Docker套件中看见。

  • 配置synology_gitlab_postgresql

Docker套件 --> 容器 --> synology_gitlab_postgresql --> 编辑 --> 卷

  • 配置synology_gitlab

Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 卷

Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 端口

Docker套件 --> 容器 --> synology_gitlab --> 编辑 --> 环境


  • 制作生成自签名证书

    • SSL

      访问gitlab应用程序可以使用SSL进行保护,以防止未经授权访问存储库中的数据。尽管CA认证的SSL证书允许通过CA验证信任,但只要每个客户采取一些额外步骤来验证您的网站的身份,自签名证书也可以提供相同级别的信任验证。我将在本节末尾提供有关实现这一点的指示。

      要通过SSL保护您的应用程序,您基本上需要两件事:私钥(.key) & SSL证书(.crt)

      使用CA认证证书时,CA将向您提供这些文件。使用自签名证书时,您需要自己生成这些文件。如果您拥有CA认证的SSL证书,请跳至加强服务器安全部分。

    • 生成自签名证书

      步骤1:创建服务器私钥
      openssl genrsa -out gitlab.key 2048

      步骤2:创建证书签名请求(CSR)
      openssl req -new -key gitlab.key -out gitlab.csr

      步骤3:使用私钥和CSR对证书进行签名
      openssl x509 -req -days 3650 -in gitlab.csr -signkey gitlab.key -outgitlab.crt

      恭喜!您现在生成了一个有效期为10年的SSL证书。

    • 加强服务器安全

      加强服务器安全,为了实现这一点,我们需要生成更强大的DHE参数。

      openssl dhparam -out dhparam.pem 2048

      这个文件需要生成一定的时间,一定要等它生成完成...

      生成完成的四个文件: dhparam.pemgitlab.csrgitlab.crtgitlab.key

  • GitLab安装SSL证书

    上述的配置synology_gitlab,已经基本配置好SSL证书的所需配置。

     将dhparam.pemgitlab.csrgitlab.crtgitlab.key这四个文件,拷贝到群晖NAS /volume1/docker/gitlab/certs 路径下即可。


GitLab汉化

  • GitLab中文社区版:https://gitlab.com/xhang/gitlab GitLab中文社区版提供了各个版本的汉化,非常棒!!


  • 套件中心中启动GitLab GitLab是真吃内存...

  • 开始我们的汉化

Docker套件 --> 容器 --> 双击synology_gitlab --> 终端机 --> 新增


  1. # 查看版本 我的是 11.11.x

  2. cat VERSION


  3. # 拉取汉化资源

  4. git clone https://gitlab.com/xhang/gitlab.git gitlab_lan


  5. # 然后进入gitlab_lan目录得到生成对应版本的汉化补丁,并保存为 zh_cn.diff 文件

  6. sudo git diff origin/11-11-stable origin/11-11-stable-zh > ../gitlab/zh_cn.diff


  7. # DMS上面没有patch命令得先安装

  8. sudo apt-get update

  9. sudo apt-get install patch


  10. # 安装完成后直接打补丁

  11. sudo patch -d /home/git/gitlab -p1 < zh_cn.diff


  12. # 顺利的话就安装成功了,为了安全起见我们再确定下有没有错误

  13. find . -name .rej


GitLab的配置文件路径

这里提供一下GitLab的相关路径,如果有需要自行修改~

  • GitLab安装路径 :

    synology_gitlab:/home/git/gitlab

  • GitLab运行时GitLab配置文件路径:

    synology_gitlab:/etc/docker-gitlab/runtime/config/gitlabhq

  • GitLab运行时Nginx配置文件路径:

    synology_gitlab:/etc/docker-gitlab/runtime/config/nginx

  • GitLab提交的工程路径:

    /volume1/docker/gitlab/repositories



GitLab使用

  • 内网穿透 cpolar


  • 外网设置


    GITLABHOST:你外网的URL地址
    GITLAB
    PORT、GITLABSSHPORT:端口地址要去掉
    GITLAB_EMAIL:你的邮箱地址


  • GitLab设置

        以管理员身份登陆。初始默认管理员账号为root,密码为12345678。


        关闭注册功能





SourceTree使用

工欲善其事必先利其器,有了GitLab,管理我们工程代码,下载、提交代码需要个工具。这里我为大家推荐SourceTree,比小乌龟好用多了!这里直接上图~




文章转载自林元皓,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论