• Docker 上 gitlab私有化部署及邮箱配置


    一、前言

    git作为目前最流行的代码管理工具,已经成为了程序员必备的技能。虽然目前有 github(对国人不太友好) 、gitee 两个比较大的代码托管平台。但是出于各种原因,搭建自己的私有代码平台也成了一部分开发人员的选择。针对这种需求,这里为大家介绍的是其中的佼佼者gitlab,也是我们公司内部正在使用的一个代码管理平台。

    二、安装

    gitlab 官网:https://about.gitlab.com , 官方提供了很多种安装方案,我这里使用Docker 的方式进行安装。

    1、首先,需要为gitlab的数据创建一个目录,用来存储gitlab在运行过程中产生的数据。
    mkdir -p /data/gitlab

    2、将数据库目录设置为环境变量
    export GITLAB_HOME=/data/gitlab

    3、使用 Docker 引擎安装 GitLab
    括号内的域名或 Ip 需要自行修改

    sudo docker run --detach \
      --hostname 【域名或IP】 \
      --publish 443:443 --publish 80:80 --publish 2222:22 \
      --name gitlab \
      --restart always \
      --volume $GITLAB_HOME/config:/etc/gitlab \
      --volume $GITLAB_HOME/logs:/var/log/gitlab \
      --volume $GITLAB_HOME/data:/var/opt/gitlab \
      --shm-size 256m \
      gitlab/gitlab-ce:latest
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    :第一次运行镜像会很慢, 因为需要初始化很多数据,每个人的服务器配置不一样, 运行的时间也不太一样, 我这里使用的是 (腾讯云 4核4G 的配置),运行了大概四五分钟的样子。

    我们可以使用命令来监听一下运行情况。查看运行日志:docker logs -f gitlab 、查看是否运行完毕:watch docker ps
    当看到下图中的healthy时,说明gitlab已经成功运行了。
    Gitlab 运行成功
    此时登录地址就可以访问登录页面了。
    在这里插入图片描述

    1、密码设置

    页面虽然可以访问, 但是我们却没办法登录,因为还没有设置用户名密码。官方给出了方案。
    第一种: 修改配置文件,如下图,但是密码会在24小时后自动删除!~~~~ 直接忽略~~~~~~
    在这里插入图片描述
    第二种: 使用GitLab Rails Console修改,下图是官方文档的截图 (非管理员的添加方式)
    gitlab 添加用户

    # 1、进入容器内部
    [root@tr data]# docker exec -it 3b8d18104c14 /bin/bahs
    
    # 2、进入gitlab 的rails 控制台   【这一步比较慢,大概在1~3分钟左右,请耐心等待】
    root@49:/# gitlab-rails console
    
    # 3、 创建用户信息
    u = User.new(username: 'pangtaiyi', email: 'pangtaiyi@163.com', name: '胖太乙', password: '123456789', password_confirmation: '123456789')
    
    # 4、直接创建, 不发送右键
    u.skip_confirmation!
    
    # 5、保存
    u.save!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    gitlab 添加用户
    第三种: 如果要添加管理员,请使用下图的方式

    # 1、用户名
    user=User.find_by_username 'root'
    # 2、 密码
    user.password="123456789"
    
    • 1
    • 2
    • 3
    • 4

    gitlab设置管理员
    然后我们输入用户名,密码就可以登录了。
    gitlab 登录成功

    2、处理报错(页面刷新很卡)

    gitlab异常
    有些配置比较低的,会发现系统很卡, 登录之后如上图显示直接报502了,这是因为内存爆满了,系统跑不起来。我机器的配置是 腾讯云 4核4G, 跑起来也比较吃力。
    系统所耗内存
    为了解决这个问题, 我看到网上有人说使用Swap 分区, 于是我尝试了一下,确实有用,设置方式如下。

    # 1、查看swap分区情况
    cat /proc/swaps
    
    # 2、创建 swap 分区
    dd if=/dev/zero of=/swap bs=512 count=8388608
    
    # 3、通过mkswap命令将上面新建出的文件做成swap分区
    mkswap /swap
    
    # 4、查看内核参数vm.swappiness中的数值是否为0,如果为0则根据实际需要调整成60
    cat /proc/sys/vm/swappiness
    sysctl -w vm.swappiness=60
    
    5、启用 swap 分区
    swapon /swap
    
    6、再次查看swap分区是否启动
    cat /proc/swaps
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    swap分区设置
    这样一套下来, 系统运行流畅多了。

    3、设置中文显示

    由于默认都是显示的英文,对于很多人来说, 太难了~~~ , 不过还好, gitlab 支持多语言,那来看看如何设置成中文显示。
    gitlab 设置简体中文
    然后刷新页面就生效了。

    4、自定义登录页样式

    经过前面几步的操作, gitlab 已经部署成功。但是发现登录页面并不是自己喜欢的, 没关系, gitlab 提供了自定义的配置, 可以修改登录页, 也可以修改默认的logo,以便用户自定义需求。
    gitlab自定义登录页样式
    gitlab自定义登录页样式
    退出登录, 可以看到登录页已经变了,
    gitlab自定义登录页样式
    这里还能设置logo, 就不一一介绍了, 有兴趣的自己可以去看。

    三、配置网易163邮箱

    gitlab 支持发送邮件,可以对一些更改,新增进行邮件提醒。因为 GitLab Docker 镜像没有安装 SMTP 服务器,所以需要我们进行配置才行。我这里使用的是网易 163的邮箱。 如果有其他邮箱(QQ、Google 、yhoo等等)可以参考官方链接:https://docs.gitlab.com/omnibus/settings/smtp.html

    1、开通SMTP 服务

    gitlab配置网易163邮箱
    gitlab配置网易163邮箱
    开启之后会有一个授权密码,请记住授权密码, 后面会用到。
    gitlab配置网易163邮箱

    2、配置 gitlab.rb 配置文件

    进入容器内部,我们找到找到 vi /etc/gitlab/gitlab.rb 文件进行编辑,编辑成下述代码,其中有些参数需要修改, 根据要求修改即可。

     gitlab_rails['smtp_enable'] = true
     gitlab_rails['smtp_address'] = "smtp.163.com"
     gitlab_rails['smtp_port'] = 25
     gitlab_rails['smtp_user_name'] = "163邮箱地址"
     gitlab_rails['smtp_password'] = "上面的秘钥"
     gitlab_rails['smtp_domain'] = "163.com"
     gitlab_rails['smtp_authentication'] = :login
     gitlab_rails['smtp_enable_starttls_auto'] = true
     gitlab_rails['gitlab_email_from'] = "163邮箱地址"
     user['git_user_email'] = "163邮箱地址"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    gitlab配置网易163邮箱
    然后重启即可

    gitlab-ctl reconfigure  
    gitlab-ctl restart
    
    • 1
    • 2

    3、测试

    新增用户
    测试gitlab 发送邮件
    可以正常接收邮件。
    测试gitlab 发送邮件

  • 相关阅读:
    PHP 变量
    举个栗子~Tableau 技巧(243):创建自动排列的图表矩阵
    神经网络入门:从神经网络结构到反向传播
    双十一游戏党必备的数码好物有哪些?2022双11游戏党必备外设清单
    实施MES管理系统前,要对哪些问题进行评估
    《Milvus Cloud向量数据库指南》——高可用vs.容错:深度剖析数据库系统可靠性的双刃剑
    nodejs微信小程序-利康药房管理系统的设计与实现- 安卓-python-PHP-计算机毕业设计
    【嵌入式】VNC Viewer远程连接树莓派
    Azure 开发者新闻快讯丨开发者7月大事记一览
    Java语言的特点?
  • 原文地址:https://blog.csdn.net/IT_rookie_newbie/article/details/126674484