一、前提条件
- 存在docker
- 服务器可以联网(外网)
- 服务器内存至少4G(内存不够会出现502错误)
内存不足502错误如下图所示:
二、安装
本次安装在CentOS7下进行,安装最新版本
- 拉取最新gitlab镜像
# 方式一:直接使用最新版本镜像
docker pull gitlab/gitlab-ce:latest
# 方式二:使用指定版本镜像,这里使用了13.5.4版本 (教程使用的此方式)
docker pull gitlab/gitlab-ce:13.5.4-ce.0
- 创建映射文件目录
# 映射配置文件夹
mkdir -p /home/gitlab/conf
# 映射日志文件夹
mkdir -p /home/gitlab/logs
# 映射数据文件夹
mkdir -p /home/gitlab/data
- 运行
# 主机名、端口映射、目录映射、gitlab版本 需自行修改
docker run --detach \
--hostname 192.168.10.234 \
--publish 10443:443 --publish 10080:80 --publish 10022:22 \
--name gitlab \
--restart always \
--volume /home/gitlab/conf:/etc/gitlab \
--volume /home/gitlab/logs:/var/log/gitlab \
--volume /home/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:13.5.4-ce.0
命令解释:
-i 以交互模式运行容器,通常与 -t 同时使用命令
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 后台运行容器,并返回容器ID
-p 10080:80 将容器内80端口映射至宿主机10080端口,这是访问gitlab的端口
-p 10022:22 将容器内22端口映射至宿主机10022端口,这是访问ssh的端口
-v /home/gitlab/conf:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机 /home/gitlab/conf目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
–restart always 容器自启动
–privileged=true 让容器获取宿主机root权限
–name gitlab-test 设置容器名称为gitlab-test
gitlab/gitlab-ce:13.5.4-ce.0 镜像的名称,这里也可以写镜像ID
三、配置
重点:接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
- 进入容器内部
# 查看当前的容器id
docker ps
# 进入容器示例 docker exec -it -i 4c97d29eee9b /bin/bash
docker exec -it -i <这里是镜像id> /bin/bash
- 修改gitlab.rb (先查看下一个步骤再决定是否进行本步骤,本步骤是可以跳过的)
# 编辑gitlab配置文件
vi /etc/gitlab/gitlab.rb
# 这个文件是全注释掉了的,所以直接在首行添加如下配置
# 打开如下两项注释
external_url 'http://192.168.10.234:10080' # gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
unicorn['worker_processes'] = 3 # 修改线程,使用人数不多的情况下可以设置比较低
# 保存编辑后,重载配置生效
gitlab-ctl reconfigure
# 重启gitlab
gitlab-ctl restart
# 退出容器
exit
- 在游览器输入如下地址,访问gitlab(eaxternal_url配置的就是这个)
http://192.168.10.240:10080
# 如果访问不成功的话:
#(1)进入容器查看gitlab.rb文件是否配置成功
#(2)查看防火墙是否开放10080、10022端口
- 第一次访问默认是root账户,会需要修改密码(密码至少8位数,就基本上部署成功了)
- 输入新密码后进行登录
评论区