一、前言

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

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

我们可以使用命令来监听一下运行情况。查看运行日志:docker logs -f gitlab 、查看是否运行完毕:watch docker ps
当看到下图中的healthy时,说明gitlab已经成功运行了。

此时登录地址就可以访问登录页面了。

1、密码设置

页面虽然可以访问, 但是我们却没办法登录,因为还没有设置用户名密码。官方给出了方案。
第一种: 修改配置文件,如下图,但是密码会在24小时后自动删除!~~~~ 直接忽略~~~~~~

第二种: 使用GitLab Rails Console修改,下图是官方文档的截图 (非管理员的添加方式)

# 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、用户名
user=User.find_by_username 'root'
# 2、 密码
user.password="123456789"


然后我们输入用户名,密码就可以登录了。

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


有些配置比较低的,会发现系统很卡, 登录之后如上图显示直接报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=605、启用 swap 分区
swapon /swap6、再次查看swap分区是否启动
cat /proc/swaps


这样一套下来, 系统运行流畅多了。

3、设置中文显示

由于默认都是显示的英文,对于很多人来说, 太难了~~~ , 不过还好, gitlab 支持多语言,那来看看如何设置成中文显示。

然后刷新页面就生效了。

4、自定义登录页样式

经过前面几步的操作, gitlab 已经部署成功。但是发现登录页面并不是自己喜欢的, 没关系, gitlab 提供了自定义的配置, 可以修改登录页, 也可以修改默认的logo,以便用户自定义需求。


退出登录, 可以看到登录页已经变了,

这里还能设置logo, 就不一一介绍了, 有兴趣的自己可以去看。

三、配置网易163邮箱

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

1、开通SMTP 服务



开启之后会有一个授权密码,请记住授权密码, 后面会用到。

2、配置 gitlab.rb 配置文件

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

 gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = "smtp.163.com"gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = "163邮箱地址"gitlab_rails['smtp_password'] = "上面的秘钥"gitlab_rails['smtp_domain'] = "163.com"gitlab_rails['smtp_authentication'] = :logingitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['gitlab_email_from'] = "163邮箱地址"user['git_user_email'] = "163邮箱地址"


然后重启即可

gitlab-ctl reconfigure
gitlab-ctl restart

3、测试

新增用户

可以正常接收邮件。

Docker 上 gitlab私有化部署及邮箱配置相关推荐

  1. #gStore-weekly | Centos7系统下gStore在 docker上的安装部署

    本人在使用gStore时想在docker环境中安装部署,但是官网的开发文档中关于docker安装部署指导很少,因此本人就根据自己的安装经验编写一篇关于gStore在docker上的安装部署博文. 本人 ...

  2. 小时级部署,客户数上千,神策数据的私有化部署靠什么取胜?

    秉承着"做正确的事情,而不做简单的事情"的理念,神策数据自创立之初,就采用"私有化部署 + SaaS "的企业服务模式,这无疑是一条更难的路,但通过在这一方向上 ...

  3. 【docker】gitlab + qqmail配置SMTP

    gitlab使用qqmail进行配置SMTP发送邮件 1. 进入docker $ sudo docker exec -it gitlab /bin/bash 2. 编辑gitlab的配置文件gitla ...

  4. java客户端运行hadoop_JAVA客户端连接部署在docker上的hdfs

    docker上已经成功部署了hdfs应用,jps命令也显示了namenode和datanode启动正常.浏览器显示 宿主机ip:50070 页面 我在eclipse使用java连接hdfs,代码如下: ...

  5. Gitlab Runner 部署

    Gitlab Runner 部署 文章目录 Gitlab Runner 部署 1. 本地安装gitlab-runner 2. 项目通过本地命令注册runner 3. docker安装gitlab-ru ...

  6. 小程序私有化部署,米筷如何异军突起?

    关于小程序私有化部署或租赁小程序服务,这个问题困扰很多的小程序初创者.运营小程序弄清楚服务商的概念是必修课,百度搜索"小程序"关键词,排名最前的可能大部分都是"租赁&qu ...

  7. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)

    # 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...

  8. Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui

    Ubuntu16.04多主机集群上手动部署Kubernetes,配置docker私有registry,配置Kubernetes-dashboard WEB ui 2017年03月17日 20:51:4 ...

  9. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

最新文章

  1. 贪心:remove K digits移除K个数字
  2. ASP.Net中让网页“立即过时”
  3. 谈谈Java中的volatile
  4. python中的_init_的含义
  5. python【Matlibplot绘图库】-二维图形绘制
  6. SLAM的前世今生 终于有人说清楚了
  7. 洛谷P3195 [HNOI2008]玩具装箱TOY
  8. 数字电影打包内容(Packaging)
  9. 拳王虚拟项目公社:说一个合法正规兼职创业,副业虚拟资源项目
  10. 数组分割问题(转载学习)
  11. 【转】C语言条件编译及编译预处理阶段
  12. 我是如何成为算法工程师的,超详细的学习路线
  13. Overloud TH3 for Mac(电吉他效果器)
  14. 445端口是什么,怎么关闭?
  15. Arnold材质节点篇-随机颜色抖动color_jitter、三平面triplanar、ambient_occlusion环境光遮蔽、curvature曲率
  16. 理财十问:1.你知道自己的风险偏好吗?
  17. 坐标计算距离公式 火星坐标系_根据经纬度计算距离的公式、百度坐标转换成GPS坐标(PHP版)...
  18. 春考天津计算机知识点资料,天津春季高考统一考试计算机基础科目考试大纲
  19. Springboot集成springFox-Swagger3并通过Yapi做接口管理
  20. 自动控制原理-频率特性 G(jw ) 定义

热门文章

  1. 服务器cpu支持4通道什么意思,四代霄龙:5nm/Zen4架构,核心/内存通道数增50%
  2. 窗口坐标获取 windows
  3. 2.1(Mysql)康师傅课件
  4. openssl-heartbleed漏洞学习
  5. Gh0stly Gh0sts:第一个 0mnichain NFT
  6. Android音视频开发之音频录制和播放
  7. 代理软件突破公司网络限制
  8. DB2 DECODE函数
  9. iPhone开发--AudioQueue设置倍速
  10. ubuntu不息屏、隐藏其他软件图标 小技巧