suse内网基于Gocker部署Gitlab私服

这篇具有很好参考价值的文章主要介绍了suse内网基于Gocker部署Gitlab私服。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

0.为什么不用rpm包安装gitlab

gitlab rpm包需要依赖 openssh-server,而suse系统自带openssh(含client和server端)。

  1. 虽然suse自带openssh,但是rpm安装还会报错找不到依赖openssh-server
  2. 尝试网上找openssh-server的rpm包安装后会有更多依赖报错,放弃;
  3. rpm安装时尾部追加参数--nodeps --force强制跳过依赖,能正常安装完毕。但是本人在公司内网机器环境下gitlab-ctl status命令有些服务是down,查日志无果。放弃
  4. 上述更换机器、确保内存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
  • mkdir -p /data04/gitlab/config
    mkdir -p /data04/gitlab/logs
    mkdir -p /data04/gitlab/data

  • chmod 777 /data04/gitlab/config
    chmod 777 /data04/gitlab/logs
    chmod 777 /data04/gitlab/data

  • docker run --detach \
    –publish 8443:443 --publish 8888:80 --publish 8222:22 \
    –name gitlab --restart unless-stopped \
    –volume /data04/gitlab/config:/etc/gitlab \
    –volume /data04/gitlab/logs:/var/log/gitlab \
    –volume /data04/gitlab/data:/var/opt/gitlab \
    –privileged=true \
    gitlab/gitlab-ce:latest

记得带上–privileged=true,让容器获取宿主机root权限。不写之后会有权限相关错误

#进入容器:
docker exec -it gitlab /bin/bash
#修改gitlab.rb:
vi /etc/gitlab/gitlab.rb

#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口,端口和docker -p参数要对应
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
# 重启
gitlab-ctl restart

启动前请参考 https://zhuanlan.zhihu.com/p/546533347 文章调小puma 核数,否则会按你机器的核数不断加线程吃内存,导致前端浏览器概率爆500、502错误,但是刷新几次又可以正常使用的情况!

注意:在修改配置文件中的external_url时,如果你的url前缀是http,则GitLab容器会在80端口提供web服务;如果你的url前缀是https,则GitLab容器会在443端口提供web服务;如果你的这个url后面带了端口,则会在相应的端口提供web服务。

注意弄好容器的端口映射关系

1.3 访问
#启动
gitlab-ctl restart

前端浏览器访问:http://B机器的IP:8888

第一次用root账号登录
root密码在
cat /data04/gitlab/etc/initial_root_password
文件中,24h该文件会被 gitlab-ctl reconfigure 删除

2.相关命令

docker stats #查看docker容器的性能消耗
docker exec -it 容器名 /bin/bash 浸入容器

3.测试ssh git clone 命令

4. 关于external_url

external_url 要不要写成 'ip:port’带端口的形式?
上述安装启动容器时--publish 8888:80参数会导致一个问题:
在external_url设置ip+port却无法访问到GitLab,如果直接设置成ip地址可以访问但是在项目的checkout地址一栏,其git地址却不包含端口号,导致http的checkout地址不可用。在用http方式clone项目需要手动补上端口号8888。
解决办法:https://zhuanlan.zhihu.com/p/46275204

  1. 首先gitlab的nginx默认监听的http访问端口是80端口,nginx conf文件在docker容器内的位置是 /var/opt/gitlab/nginx/conf/gitlab-http.conf
  2. 不考虑防火墙映射等等外部规则:我们docker run命令启动容器时--publish 8888:80参数的意思是,将容器端口80映射到宿主机8888。也就是说,我们没有改gitlab容器的默认http端口80,只是在docker映射时改到了对外宿主机的端口到8888。80到8888 是docker在“容器外”做的映射。
  3. 此时对于容器内的gitlab,是没有影响的,默认http的80端口没有改变。所以external_url的写法不需要带端口,直接ip就行了。对于docker容器外的访客来说,则需要在浏览器带端口ip:8888去访问

参考:https://www.hash070.top/archives/gitlab-withdocker.html

上述说了一大堆,总结下文章来源地址https://www.toymoban.com/news/detail-549085.html

  1. docker run启动镜像时,如果关于http端口的参数是--publish 80:80,那么一切正常,external_url只需要填写http://ip即可。前端浏览器访问http://ip即可;
  2. 如果关于http端口的参数是--publish 你自定义非80的端口:80external_url填写http://ip 不能带端口,前端浏览器访问http://ip:你自定义非80的端口。这样会导致一个问题:你在用http的方式clone项目的时候,http url会不带端口,导致clone失败!需要手动补充端口,例如:http://ip:你自定义非80的端口/XXX/项目名.git。(ssh clone是正常带端口的,前面在gitlab.rb配置了gitlab_shell_ssh_port)
  3. 解决2的办法来自官网:将参数改为--publish 你自定义非80的端口:你自定义非80的端口并将external_url改为http://ip:你自定义非80的端口,官网这里的的例子就是--publish 8989:8989,external_url改为http://ip:8989
    suse内网基于Gocker部署Gitlab私服,软件安装,docker,gitlab已经建立容器的,就先停止容器再删除容器。但是不要将映射的配置文件删除(gitlab.rb文件),docker在删除容器的时候不会将映射的文件删除。
    当然也可以不管它……反正ssh配置好了够用……

到了这里,关于suse内网基于Gocker部署Gitlab私服的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于SNAT+DNAT发布内网K8S及Jenkins+gitlab+Harbor模拟CI/CD的综合项目

    目录 项目名称 项目架构图 项目环境 项目概述 项目准备 项目步骤 一、修改每台主机的ip地址,同时设置永久关闭防火墙和selinux,修改好主机名,在firewalld服务器上开启路由功能并配置snat策略。 1. 在firewalld服务器上配置ip地址、设置永久关闭防火墙和selinux,并修改好主机名

    2024年02月09日
    浏览(53)
  • Gitlab基础篇: Gitlab docker 安装部署、Gitlab 设置账号密码

    安装docker gitlab前确保docker环境,如果没有搭建docker请查阅“Linux docker 安装文档” docker 下载 gitlab容器 参数解析 命令 参数 解析 -name gitlab 容器的名称 -p 18081:80 80端口为gitlab可视化操作服务的默认访问端口,防止占用将80更改为18081 -p 10022:22 22为ssh 端口,因为冲突所以改成10

    2024年01月21日
    浏览(36)
  • gitlab【安装部署、备份与恢复】

    【1】安装依赖 【2】安装软件包 【3】修改配置 【4】初始化gitlab、后续修改了配置也需要初始化 【5】查看安装是否报错 【6】验证邮箱是否正常  【7】浏览器测试访问   【8】汉化、需要软件包,版本一致  【9】数据备份 【10】数据恢复  

    2024年02月13日
    浏览(37)
  • 基于jenkins+gitlab+docker部署zabbix

    我现在已经在一台服务器上部署了jenkins和gitlab,现在有一个场景是需要在服务器上再部署一个zabbix,需要通过jenkins加上gitlab部署,并且要求zabbix是通过docker部署的 jenkins、gitlab已完成部署并能正常访问,服务器docker能够正常使用 1、创建Git仓库: 在GitLab上创建一个新的仓库,

    2024年04月13日
    浏览(39)
  • kubernetes基于helm部署gitlab-runner

    这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-runner。 先决条件: 已运行的 Kubernetes 集群 已运行的 gitlab 实例 项目地址:https://gitlab.com/gitlab-org/charts/gitlab-runner 官方文档:https://docs.gitlab.com/runner/install/kubernetes.html 1、登陆UI创建新的runner 选择Your work– Admin Area 2、选择CI/

    2024年02月13日
    浏览(34)
  • kubernetes基于helm部署gitlab-operator

    这篇博文介绍如何在 Kubernetes 中使用helm部署 GitLab-operator。 先决条件 已运行的 Kubernetes 集群 负载均衡器,为ingress-nginx控制器提供EXTERNAL-IP,本示例使用metallb 默认存储类,为gitlab pods提供持久化存储,本示例使用openebs cert-manager,为gitlab提供自签名证书 项目地址:https://gitl

    2024年02月14日
    浏览(35)
  • 【运维篇】基于docker,jenkins结合gitlab做自动部署

    我的环境是windows系统,使用Docker Desktop制作了gitlab容器和jenkins容器,也可以在虚拟机上使用docker。 gitlab有镜像我们直接使用即可,jenkins镜像有一些环境没有,我们在它的基础上添加一些环境。 需要准备的文件比较多,我百度网盘共享一下。 链接:https://pan.baidu.com/s/1K7FD-ngQ

    2024年01月16日
    浏览(55)
  • gitlab-runner安装和部署项目

    目录 1.安装gitlab-runner 1.1 添加官方仓库 1.2.1 安装最新版本 1.2.2 安装指定版本(可选) 1.2.3 更新runner(可选) 1.3 随便点开gitlab上的一个项目 1.4 gitlab-runner的注册 2.配置gitlab-runner 3.runner一些命令 gitlab官网:Install GitLab Runner | GitLab .gitlab-ci.yml文件语法参考:`.gitlab-ci.yml` keywor

    2024年02月10日
    浏览(38)
  • 在CentOS7安装部署GitLab服务

    官方安装教程:https://about.gitlab.com/install/ 参考安装教程:https://developer.aliyun.com/article/74395 Step1:配置yum源 存入以下内容: Step2:更新本地yum缓存 Step3:安装GitLab社区版 Step4:启动Gitlab Step5:登录并配置Gitlab 打开服务器本地浏览器,访问:127.0.0.1 地址,打开 Gitlab 管理后台,

    2024年02月14日
    浏览(38)
  • 【gitlab部署】centos8安装gitlab(搭建属于自己的代码服务器)

    在团队开发过程中,想要拥有高效的开发效率,选择一个好的 代码开发工具 是必不可少的。搭建git服务器有两种方式 ● github(国外的,很卡)或者gitee(国内的,网速还可以,可以设置项目为私有,防止其他人可见) ● 通过gitlab搭建自己的git服务器 要求 ● gitlab十分吃内存,建议

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包