最近公司有个需求,需要用Mac系统搭建一个本地的GitLab环境。但是Mac系统上搭建GitLab的教程并不多,而且搭建起来特别麻烦(有兴趣的可以和我交流)。文中采用的是虚拟机的方式来搭建,下面是踏坑的过程记录,希望能让需要的人少走点弯路。

一、安装虚拟机相关

(1)VirtualBox下载并安装
virtualBox下载地址:请点击此处

(2)Vagrant下载并安装
vagrant下载地址:请点击此处

(3)Vagrant添加box(文中使用debian):

Vagrant安装完成之后运行以下命令:

vagrant box add debian/jessie64

如果你不想使用debian,你还可以搜索其他系统对应的版本:点击此处搜索

(4)初始化Vagrant
创建开发目录:~develop(也可以使用已经存在的目录),切换到创建的目录下,使用debian/jssie64镜像初始化。

1
2
3
4
$ mkdir develop //创建develop目录
$ cd ~/develop //切换目录
$ vagrant init debian/jessie64 //初始化box
$ vagrant up //启动Vagrant

启动之后,用SSH登陆虚拟机

1
2
$ vagrant ssh	//SSH登陆
$ cd /vagrant //虚拟机登陆成功之后切换目录至vagrant(对应之前的develop)

(4)Vagrant其他设置:

  • 端口映射(将虚拟机中的端口映射到宿主机对应的端口直接使用 ):

去掉下面这行代码前面的”#“符号:

config.vm.network "forwarded_port", guest: 80, host: 8080

  • 私有网络(只有主机可以访问虚拟机):

打开Vagrantfile去掉下面这行代码前面的“#”符号:(如果需要自己自由的访问虚拟机,但是别人不需要访问虚拟机,可以使用private_network,并为虚拟机设置IP ,在Vagrantfile中配置)

config.vm.network :private_network, ip: “192.168.33.10”

重启虚拟机,这样本机就可以直接通过192.168.33.10来访问这台虚拟机了。

  • 桥接模式:(较为常用是端口映射,就是将虚拟机中的端口映射到宿主机对应的端口直接使用)

去掉下面这行代码前面的”#“符号:

config.vm.network :public_network, ip: “192.168.1.13”

这样就可以在局域网内其他机器就可以通过192.168.1.13来访问这台虚拟主机了。

(5)Vagrant 常见命令:

1
2
3
4
5
6
7
$ vagrant init  //初始化
$ vagrant up //启动
$ vagrant halt //关闭
$ vagrant reload //重启
$ vagrant ssh //SSH登陆
$ vagrant status //检查状态
$ vagrant destroy //销毁虚拟机

有关于重启虚拟机报错问题解决方案:
报错信息如下:

1
2
“A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,get an ID of a target machine from `vagrant global-status` to run this command on. A final option is to change to a directory with a Vagrantfile and to try again.”

这可能是路径造成的,一定要在Vagrantfile目录下运行命令。
比如我的Vagrantfile是在用户根目录下的develop目录下:

1
2
3

$ cd ~/develop
$ vagrant reload

二、安装GitLab CE Omnibus包

安装GitLab社区版,安装方式一定要看官网:官网地址在此

(1)安装依赖:

sudo apt-get install curl openssh-server ca-certificates postfix

(2)下载并安装GitLab包:

在下载GitLab包之前,我们先要找到自己想要的GitLab版本:
点击此处搜索自己想要的GitLab版本。如下图所示:对应系统类型版看小标签。我选的是debian/jessie。

找到对应的版本之后,开始下载并安装GitLab包:

官网的下载安装方式有两种:

  • 脚本方式安装:
1
2
 curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt-get install gitlab-ce
  • 手动方式安装(文中采用的方式):
1
2
3
4
5
 curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/debian/jessie/gitlab-ce-XXX.deb/download

sudo dpkg -i gitlab-ce-XXX.deb

示例:sudo dpkg -i gitlab-ce_8.13.3-ce.0_amd64.deb


(3)调试和启动GitLab:

sudo gitlab-ctl reconfigure

(4)访问并登陆

安装好之后,进行Vagrant端口映射(上文中有详细的讲解),就可以通过局域网内其他机器进行访问了:比如我的Gitlab搭建的这台机器IP是:192.168.1.14。直接在其他机器的浏览器上输入:http://192.168.1.14:8080即可访问。

默认的管理员账号是root,第一次访问,会需要你重置密码:
你需要在第一个输入框中设置你的新密码。第二个输入框中Gitlab之前的旧密码(默认密码):5ivel!fe,设置完成之后就让你确认新密码。如下图所示(此图来源于网络):

以上步骤完成就跳转到用户注册页面了,你可以自由翱翔。

(5)GitLab其他设置:

配置Gitlab对外显示地址(external url):

为使用户可以正确的获取到GitLab上显示的当前仓库的clone地址, GitLab需要你设置一个能让用户访问到GitLab的指定url, 比如 http://gitlab.example.com。你需要编辑下面这个文件 /etc/gitlab/gitlab.rb:

external_url "http://gitlab.example.com" #替换为你自己的地址

修改完成之后,运行:

sudo gitlab-ctl reconfigure

使修改的配置生效。

(6)查看本地gitlab的log日志:

tail -f /var/log/gitlab/gitlab-rails/production.log

三、遇到的坑及解决办法:

(1)登录后创建的项目project页面显示为空,查看日志发现提交代码无法写入。

问题原因:虚拟机内存大小配置问题。

解决办法:修改虚拟机配置即可解决。

(2)桥接模式下,无线网络环境可以正常启动,以太网环境(Mac mini插网线)启动会碰到无法启动问题。

问题原因:本地网络名称中文编码问题。

解决办法:把以太网名称改成英文字母即可。

本文内容中部分来自网络,后续会不断更新完善。欢迎一起学习交流!

如需转载,请注明出处

四、参考博客地址: