1.环境
安装docker
在内网环境下使用docker安装gitlab,操作系统是centos 7版本,首先使用rpm包安装docker
sudo rpm -ivh xxx.xxx.rpm
一共需要安装三个包,centos在安装时会遇到自己依赖自己的问题,这个只需在后面加上--nodeps即可
sudo rpm -ivh xxx.rpm --nodeps
安装好之后启动docker
systemctl restart docker
验证是否启动成功
docker ps
docker -v
安装gitlab镜像
首先我是从一台能够访问公网的服务器下载的docker镜像, 镜像可以通过命令或者访问 hub.docker.com 进行查询之后进行下载
//在能够访问公网的情况下查看docker镜像
docker search gitlab
//下载gitlab镜像
docker pull gitlab/gitlab-ce:latest
验证是否下载成功
docker images
打包镜像,格式为tar包
docker save -o gitlab.tar gitlab/gitlab-ce:latest
打包好以后将tar包拷贝到内网服务器上,解压之后会变成docker镜像
docker load -i gitlab.tar
解压之后验证
docker images
启动
这里我使用的启动方式是写了一个bash脚本,如下:
docker run -d \
-p 80:80 \
--name the-gitlab \
-v /app/gitlab/config:/etc/gitlab \
-v /app/gitlab/logs:/var/log/gitlab \
-v /app/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
赋予该文件执行权限
chmod +x xxx.sh
启动脚本
bash xxx.sh //第一种方式
./xxx.sh //第二种方式
验证是否启动成功
docker ps
docker ps -a
修改配置文件
gitlab需要修改gitlab.rb 文件,这样可以通过url访问到Git仓库
1.cd /app/gitlab/config
2.vim gitlab.rb
3.external_url 'http://ipaddress' //在配置文件中添加,ipaddress为宿主机ip,如不清楚可通过ifconfig 查看
进入容器重置gitlab
docker exec -ti the-gitlab /bin/bash
gitlab-ctl reconfigure
exit //退出容器,请等待重置完成后再退出
docker restart the-gitlab
至此,docker安装gitlab完成。
说明
- gitlab内置postgres数据库,所以不需要再连其他数据库
- 如需备份gitlab,请直接备份挂载到容器外面的/data目录,对应目录可看bash脚本中的-v 参数
坑
内网启动sh文件时报错,提示没有权限,开始以为是当前用户没有加入到docker组里,后发现docker组已经存在,添加当前用户后依旧报错,经过百度查看是selinux搞的鬼,解决命令如下:
getenforce //查看selinux状态
setenforce 0 // 当时发现selinux状态为enforcing ,需要将其修改为Permissive
//永久更改
vim /etc/selinux/config
selinux=Permissive
完结 撒花~~~