今天闲着无聊,于是乎想用最近很流行的docker容器搭建一个自己的gitlab的服务器,关于docker和gitlab就不多介绍了,网上查了很多资料,貌似没有一个统一的方法,很乱很杂,而且很容易误导人,其实搭建一个私有gitlab服务器其实没有那么难,说一下今天我用的方式。

  网上的方法很多,无外乎两种:

  1.分别拉取redis,gitlab,postgresql(mysql也行)三个镜像,然后不拉不拉不拉...感觉后面好麻烦(个人还是比较懒的)。

  2.通过docker-compose快速构建,我反正是没成功..

  后来经过查阅资料发现,gitlab/gitlab-ce这个镜像包含了gitlab运行所需要的所有组件,其实用这一个镜像就够了,下面开始正文。

 

  主要步骤:

  1.拉取gitlab/gitlab-ce镜像,建议使用网易的镜像仓库地址,快到飞起,地址:hub.c.163.com/gutenye/gitlab-ce:latest

docker pull hub.c.163.com/gutenye/gitlab-ce:latest

  2.创建并并行一个容器,输入以下命令:

docker run -i \
--hostname localhost \
--publish 443:443 --publish 80:80 --publish 2222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--volume /srv/gitlab/logs/reconfigure:/var/log/gitlab/reconfigure \
hub.c.163.com/gutenye/gitlab-ce:latest

  \ 代表换行符,以上参数我就不讲解了,就说一个,也是我在本次过程中遇到的很大的一个坑:注意那个 -i 参数,我刚开始写的时候是: --detach ,--detach(-d)的意思是以后台的方式运行,当你用这个参数的时候控制台直接返回给你一个容器ID,没有其他任何信息的输出,当时我就懵逼了,因为查阅资料说要等几分钟的配置工作,我以为会打印日志信息出来,然而并没有,当时真的很懵逼,不过还好在StackOverflow上查到了原因,原来,-d的意思是以后台程序运行,也就是说塔虽然直接返回给了你一个容器ID,但它其实是有在运行的,只不过没有打印信息出来,当你该用 -i (可以理解为在控制台打印日志)参数运行时,打印结果就出来了。下面上两张对比图。

  以 --detach(-d)方式运行

gitlab 对服务器要求 windows gitlab服务器_git

  是不是很坑爹?什么信息也没有,只有一个67开头的容器ID,其实此时后台是有程序在跑的,也就是说你的gitlab其实是在后台跑起来了。

  以 -i 方式运行 

gitlab 对服务器要求 windows gitlab服务器_git_02

  第一张图是在公司用公司电脑win7跑的,第二张是在自己电脑上win10系统跑的,然后等大概两分钟的样子,等它配置完就可以登陆192.168.99.100了。然后进入gitlab主页了

gitlab 对服务器要求 windows gitlab服务器_git_03

  另外,我用的是windows系统,请区分windows系统中docker宿主机和linux系统中docker宿主机的不同,因为docker的运行依赖linux环境,所以在windows系统中运行docker时,就必须先虚拟出来一个linux虚拟机,这也是docker在windows下安装时(我用的DockerQuickStartTerminal)也会跟着安装一个virtualbox的原因,此时docker宿主机指的是virtualbox中新建的那个linux虚拟机,宿主机IP指的也是那个linux虚拟机的IP,如果是在linux环境下使用docker,那么宿主机就是本机。