基于docer搭建私有gitlab服务器
今天闲着无聊,于是乎想用最近很流行的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)方式运行
是不是很坑爹?什么信息也没有,只有一个67开头的容器ID,其实此时后台是有程序在跑的,也就是说你的gitlab其实是在后台跑起来了。先写到这里,待会再更。