0.为什么不用rpm包安装gitlab
gitlab rpm包需要依赖 openssh-server,而suse系统自带openssh(含client和server端)。
- 虽然suse自带openssh,但是rpm安装还会报错找不到依赖openssh-server
- 尝试网上找openssh-server的rpm安装会有更多依赖报错,放弃;
- rpm安装时尾部追加参数
--nodeps --force
强制跳过依赖,能正常安装完毕。但是本人在公司内网机器环境下gitlab-ctl status
命令有些服务是down,查日志无果。放弃 - 上述更换机器、确保内存free足够的情况下,仍然不行,放弃rpm
1. 内网下以docker安装gitlab
我们准备两台Linux机器
- 内网服务器待安装gitlab 为A(suse)
- 可连接外网的服务器为B
1.1 安装docker
- 自行下载匹配docker tar包,传入A。x86_64/docker-20.10.6.tgz
- tar -xzvf docker-20.10.6.tgz
- cp docker/* /usr/bin/
- dockerd &
- docker -v 有信息说明成功
两台机器均要安装
1.2 获取镜像和配置
B机器执行
- docker pull gitlab/gitlab-ce:latest
- docker save gitlab/gitlab-ce:latest -o gitlab.tar
- 下载生成的tar到本地,把tar上传到A
A机器安装镜像(参考官网文档 https://docs.gitlab.cn/jh/install/docker.html)
- docker load < gitlab.tar
记得带上–privileged=true,让容器获取宿主机root权限。不写之后会有权限相关错误
#进入容器:
docker exec -it gitlab /bin/bash
#修改gitlab.rb:
vi /etc/gitlab/gitlab.rb
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://B机器的IP'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 让配置生效
gitlab-ctl reconfigure
启动前请参考 https://zhuanlan.zhihu.com/p/546533347 文章调小puma 核数,否则会按你机器的核数不断加线程吃内存,导致前端浏览器概率爆500、502错误,但是刷新几次又可以正常使用的情况!。
1.3 访问
#启动
gitlab-ctl restart
前端浏览器访问:http://B机器的IP:8888
。
第一次用root账号登录
root密码在
cat /data04/gitlab/etc/initial_root_password
文件中,24h该文件会被 gitlab-ctl reconfigure 删除