docker部署gitlab

太白
2022-05-06 / 0 评论 / 0 点赞 / 462 阅读 / 1,722 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-05-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

一、前提条件

  • 存在docker
  • 服务器可以联网(外网)
  • 服务器内存至少4G(内存不够会出现502错误)
内存不足502错误如下图所示:

gitlab_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位数,就基本上部署成功了)
  • 输入新密码后进行登录
0

评论区