一、准备工作
安装docker ,搭建一个docker容器,在docker容器上启用gitlab中文版镜像192.168.4.254。
gitlab中文版镜像下载地址:https://gitlab.com/xhang/gitlab.git
参考文章:https://hub.docker.com/r/beginor/gitlab-ce/
参考资料 :https://www.cnblogs.com/zuxing/articles/9329152.html
以下为docker里的git的安装包:
container-selinux-2.42-1.gitad8f0f7.el7.noarch.rpm
container-storage-setup-0.8.0-3.git1d27ecf.el7.noarch.rpm
docker-1.13.1-53.git774336d.el7.centos.x86_64.rpm
docker-client-1.13.1-53.git774336d.el7.centos.x86_64.rpm
docker-common-1.13.1-53.git774336d.el7.centos.x86_64.rpm
oci-register-machine-0-6.git2b44233.el7.x86_64.rpm
oci-systemd-hook-0.1.15-2.gitc04483d.el7.x86_64.rpm
oci-umount-2.3.3-3.gite3c9055.el7.x86_64.rpm
skopeo-containers-0.1.28-1.git0270e56.el7.x86_64.rpm
1、获取镜像
- 方法一 : #docker pull beginor/gitlab-ce:11.0.1-ce.0
- 方法二 : 从别的机器上导过来 ,]# docker load < docker/images/gitlab-ce.tar
2、运行
1) 通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外,便于日后升级, 因此先准备这三个目录。
#mkdir -p /root/docker/gitlab/etc
#mkdir -p /root/docker/gitlab/log
#mkdir -p /root/docker/gitlab/data
或者:
#mkdir -p /root/docker/gitlab
#cd /root/docker/gitlab
#mkdir {config ,logs,data}
2) 运行 新容器,将容器的443、80、22端口发布出去。当容器意外停止时,将其重启restart.再将容器的配置目录、日志、数据映射到本机/root/docker/gitlab
[ docker run -h gitlab --name=gitlab -d --publish 1443:443 --publish 18080:80 --publish 2222:22 --restart always --volume /root/docker/gitlab/config:/etc/gitlab --volume /root/docker/gitlab/logs:/var/log/gitlab --volume /root/docker/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest ]
修改gitlab容器的配置文件:
#docker exec -it gitlab vi /etc/gitlab/gitlab.rb
#ifconfig #查看一下,docker 对应的ip
修改为服务器的ip地址:13 external_url ‘http://172.17.0.1:18080’ ##这里修改为docker 对应的ip
3) 登录Gitlab,IP为宿主机IP地址 http://172.17.0.1:18080
如果访问上面的地址页面显示502 Whoops, GitLab is taking too much time to respond。
原因:1、unicorn原8080默认端口被容器中别的进程已经占用,必须调整为没用过的;2、gitlab的timeout设置过小,默认为60。
需要修改/root/docker/gitlab/config/gitlab.rb文件,重启docker容器即可。
这里注意一下,本人在虚拟机里用docker 搭建gitlab,不得不说,超级卡,而且出现了很多了直接在虚拟机搭建gitlab没有出现的问题,只能借用一下别的方法。
1、使用以下命令编辑gitlab配置文件: sudo docker exec -it gitlab vim /etc/gitlab/gitlab.rb
修改一下配置项:unicorn[‘port’] = 8090 ##原本端口号是8080
gitlab_workhorse[‘auth_backend’] = “http://localhost:8090” ##原本端口号也是8080,这两项的端口号必须一致unicorn[‘port’] 和auth_backend端口不能使用9090,因为9090是普罗米修斯监控的默认端口。
2、调整timout时长,从60秒改为90秒:
gitlab_rails[‘webhook_timeout’] = 90
gitlab_rails[‘git_timeout’]=90
3、重启容器:
docker restart gitlab
docker logs gitlab
或者进入容器,查看gitlab启动状态和动态日志:
sudo docker exec -it gitlab /bin/bash
cd /usr/bin
gitlab-ctl status
gitlab-ctl tail
4、 也可以进入容器后,根据容器创建时映射的–volume目录,在里面修改配置,然后重启gitlab:
gitlab-ctl reconfigure
gitlab-ctl retart
gitlab-ctl status
gitlab-ctl tail
4)配置gitlab
(1)访问http://192.168.122.4:18080(宿主机ip),第一次访问需要设置密码,密码必须8位以上。如1234.com
(2)登陆时,用户名是root,密码是1234.com
(3)创建群组,群组路径和名字填写devops,类型为公开
(4)创建群组后,右下角有new project 创建项目,点击以创建项目名称 core_py
(5)拉取项目测试