花了2小时,我在公司内网搭建了gitlab服务

(1)可随时迁移,数据随时备份

(2)通过docker方式部署,环境隔离,不干扰服务器上的其他运行环境

1. 背景

老板派活了,让2天内搭建一个代码服务器

2. 上网找资料

2.1 在docker中安装gitlab官方指导 Install GitLab by using Docker

2.2 csdn上详细介绍安装过程的文档 docker搭建gitlab服务器完整版(参考这篇文章处理过一个10080端口的bug)

3. 着手开干

3.1 找镜像

在dockerhub上搜索gitlab

3.2 拉取并启动gitlab镜像

3.2.1 拉取镜像

# 拉取镜像,指定版本为 14.1.2-ce.0
docker pull gitlab/gitlab-ce:14.1.2-ce.0
# 查看镜像
docker images

3.2.2 准备数据目录

我们将gitlab的数据保存到物理机的/home/gitlab目录下,做后续的gitlab数据/配置/日志目录。可以提前将这个目录清理出来,不做他用。

mkdir -p /home/gitlab/

3.2.3 启动镜像

编写启动脚本

可以将命令放到启动脚本docker_start_gitlab.sh中,方便使用

# 启动容器
docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce:14.1.2-ce.0

关键参数说明

启动镜像

sudo bash docker_start_gitlab.sh

3.3 修改gitlab配置

3.3.1 进入gitlab docker

docker exec -it gitlab /bin/bash

3.3.2 修改配置文件

# 1 打开配置文件
vi /etc/gitlab/gitlab.rb

# 2 添加如下几行 external_url,gitlab_rails,gitlab_rails和nginx
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
nginx['listen_port'] = 80

3.3.3 重新加载配置

gitlab-ctl reconfigure

3.3.4 修改端口号

# 将port修改为9980, 也就是在docker启动gitlab镜像的时候映射的端口号
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

3.3.5 重启gitlab

# 重启gitlab
gitlab-ctl restart

3.3.6 修改gitlab root密码

# 登录git内部控制台
gitlab-rails console -e production
# 修改root的密码为Aa123456abc
user = User.where(id:1).first
user.password='Aa123456abc'
# 保存并退出git内部控制台
user.save!
exit

3.3.7 登出gitlab容器

exit

3.4 登录gitlab网页

使用用户名root和刚才修改的密码Aa123456abc登录

登录成功后如下图所示

4. git数据备份和恢复

4.1 备份数据

# 先登录到容器中
docker exec -it gitlab /bin/bash
# 使用如下命令备份数据到 /var/opt/gitlab/backups 目录下
gitlab-rake gitlab:backup:create

4.2 恢复数据

# 在新的机器上,启动容器
# 登录到gitlab容器中,恢复数据
docker exec -it gitlab /bin/bash
cd /var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore BACKUP=1537261122_2018_09_18_9.2.5

4.3 还有一种简单粗暴的方式

定期将物理机/home/gitlab目录做备份,在迁移机器上运行之前脚本启动镜像

5. 用户授权管理

5.1 简单管理

一般情况,直接通过gitlab网页注册用户并登录。

5.2 统一管理

需要支持上百人使用时,可以接入LDAP授权服务器,统一管理。

LDAP服务可以本地部署,也可以通过服务商购买。 在本地部署LDAP服务:可以参考统一身份认证系统 OpenLDAP 完整部署

gitlab接入LDAP: Integrate LDAP with GitLab

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值