当前位置: 首页 > news >正文

Linux环境gitlab多种部署方式及具体使用

一、GitLab的介绍

GitLab是一个基于Git 的代码托管和DevOps平台,提供代码管理、CI/CD、项目管理等功能,支持团队协作开发。可自托管或使用云端服务,是GitHub的竞品之一。

二、相同产品比较

  • GitLab:功能全面,适合自研或国际化团队,但国内访问可能较慢。

  • 云效:阿里云用户首选,深度集成云服务,适合国内企业。

  • Coding:腾讯云生态友好,适合国内敏捷开发团队。

三、安装方式一(以centos7.9为例)

1.安装依赖

sudo yum install -y curl policycoreutils-python openssh-server postfix
sudo systemctl enable postfix
sudo systemctl start postfix

2.添加官方仓库

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

 3.安装GitLab-ce社区版

sudo EXTERNAL_URL="http://你的服务器IP" yum install -y gitlab-ce

 4.配置访问ip端口以及默认用户邮箱(可选配)

修改root用户邮箱这段配置按邮箱设置中的SMTP服务开启后自然知道该怎么填写

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

配置完成后

gitlab-ctl reconfigure
gitlab-ctl restart 

5.配置并启动

sudo gitlab-ctl reconfigure  # 初始化配置
sudo gitlab-ctl start       # 启动服务  

6.访问

http://你的服务ip:端口

默认root用户登录,登录密码:cat /etc/gitlab/initial_root_password

注意!!!

如果说服务器中启动了防火墙,请在防火墙中开放此端口

检查防火墙状态:systemctl status firewalld

查看开放的端口:firewall-cmd --list-ports

开发8080端口:firewall-cmd --zone=public --add-port=8080/tcp --permanent

如果使用的是阿里云、华为云、AWS等云厂商的服务器,请在控制台中把改端口开放(按22端口开放方式即可)

 四、安装方式二(以centos7.9为例)

使用docker run、docker-compose方式安装GitLab

如果这里还不会安装docker的请点击查看我单独写的安装docker

Docker的安装使用以及常见的网络问题-CSDN博客

1.Dockerfile方式安装

#拉取gitlab镜像

docker pull gitlab/gitlab-ce:latest

2.创建gitlab数据目录

sudo mkdir -p /srv/gitlab/{config,logs,data}

3.启动gitlab 

sudo docker run --detach \
  --hostname gitlab.example.com \  # 替换为你的域名或IP
  --publish 443:443 --publish 80:80 --publish 22:22 \  # 映射HTTP/HTTPS/SSH端口
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest 

4.查看root默认密码

docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

5.访问

默认使用root用户登录

http://服务器ip:端口

五、安装方式三(以centos7.9为例)

1.docker compose方式下载

创建docker-compose.yaml文件 编写yaml文件中访问方式以及root用户的初始化密码

version: '3.8'services:redis:image: redis:6.2container_name: gitlab-redisrestart: alwaysvolumes:- redis-data:/datacommand: --loglevel warninghealthcheck:test: ["CMD", "redis-cli", "ping"]interval: 5stimeout: 5sretries: 5networks:- gitlab-networkpostgresql:image: postgres:14container_name: gitlab-postgresqlrestart: alwaysenvironment:POSTGRES_USER: gitlabPOSTGRES_PASSWORD: gitlab_passwordPOSTGRES_DB: gitlabhq_productionPOSTGRES_SHARED_BUFFERS: 512MBvolumes:- postgresql-data:/var/lib/postgresql/datahealthcheck:test: ["CMD-SHELL", "pg_isready -U gitlab -d gitlabhq_production"]interval: 5stimeout: 5sretries: 5networks:- gitlab-networkgitlab:image: gitlab/gitlab-ce:14.6.1-ce.0container_name: gitlab-cerestart: alwayshostname: aa.bb.comdepends_on:redis:condition: service_healthypostgresql:condition: service_healthyenvironment:GITLAB_OMNIBUS_CONFIG: |external_url 'https://aa.bb.com'nginx['ssl_certificate'] = "/etc/gitlab/ssl/aa.bb.com.crt"nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/aa.bb.com.key"nginx['redirect_http_to_https'] = true  # 确保启用HTTP到HTTPS的重定向puma['port'] = 8080puma['worker_processes'] = 2sidekiq['max_concurrency'] = 2gitlab_rails['gitlab_shell_ssh_port'] = 2222gitlab_rails['db_adapter'] = 'postgresql'gitlab_rails['db_host'] = 'postgresql'gitlab_rails['db_port'] = 5432gitlab_rails['db_database'] = 'gitlabhq_production'gitlab_rails['db_username'] = 'gitlab'gitlab_rails['db_password'] = 'gitlab_password'gitlab_rails['redis_host'] = 'redis'gitlab_rails['redis_port'] = 6379gitlab_rails['initial_root_password'] = aabb123456'gitlab_rails['default_locale'] = 'zh_CN'letsencrypt['enable'] = falsevolumes:- gitlab-config:/etc/gitlab- gitlab-logs:/var/log/gitlab- gitlab-data:/var/opt/gitlab- ./ssl/:/etc/gitlab/ssl  # SSL证书目录ports:- "80:80"- "443:443"- "2222:22"shm_size: '256m'networks:- gitlab-networkgitlab-runner:image: gitlab/gitlab-runner:alpinecontainer_name: gitlab-runnerrestart: alwaysdepends_on:- gitlabvolumes:- gitlab-runner-config:/etc/gitlab-runner- /var/run/docker.sock:/var/run/docker.socknetworks:- gitlab-networkvolumes:redis-data:postgresql-data:gitlab-config:gitlab-logs:gitlab-data:gitlab-runner-config:networks:gitlab-network:name: gitlab-network

2.访问

编写完后在当前文件下使用docker copmose up -d后台启动 ,启动后使用docker ps观察 gitlab-ce 以及gitlab-runner的状态,gitlab-ce成功启动后使用root初始化密码登录

3.创建项目启动runner

这个使用你会发现即使是登录成功了,但是gitlab-runner依旧在报错,这时候你需要在runner中使用一个key启动一个runner在宿主机中单独重启一下git-runner(创建的前提是已经有projects来绑定该runner)

http://www.xdnf.cn/news/1286047.html

相关文章:

  • [论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类
  • 完整多端口 Nginx Docker部署 + GitLab Runner注册及标签使用指南
  • 使用 NetBird 创建安全的私有网络,简化远程连接!
  • 【论文阅读】从表面肌电信号中提取神经信息用于上肢假肢控制:新兴途径与挑战
  • 终端安全检测和防御技术总结
  • Java数据结构之ArrayList
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 卫生间装修防水怎么做合适?
  • 激光干涉法在碳化硅衬底 TTV 厚度测量中的精度提升策略
  • 高性能web服务器Tomcat
  • Vue 3 + Elementui + TypeScript 实现左侧菜单定位右侧内容
  • 石英加速度计如何实现高精度测量?
  • 深度贴:前端网络基础及进阶(3)
  • 鲲鹏arm服务器安装neo4j社区版,实现图书库自然语言检索基础
  • 地图可视化实践录:显示地理区域图
  • 自然语言处理关键库解析和使用方法- FuzzyWuzzy
  • 虚拟机一站式部署Claude Code 可视化UI界面
  • 豆包 + 蘑兔 AI:你的创作搭子
  • 运维学习Day22——Anisible自动化与基本使用
  • Kafka的一条消息的写入和读取过程原理介绍
  • kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?
  • PO、BO、VO、DTO、POJO、DAO、DO基本概念
  • 开源!!! htop移植到OpenHarmony
  • 【网络运维】Linux和自动化: Ansible基础实践
  • ncurses 6.5 交叉编译移植到OpenHarmomy
  • 【软考中级网络工程师】知识点之 IP QoS 技术
  • 小红书笔记信息获取_实在智能RPA源码解读
  • 【Redis优化深度剖析:如何通过读写分离提升系统性能】
  • 【限时分享:Hadoop+Spark+Vue技术栈电信客服数据分析系统完整实现方案
  • Rocky Linux 10 部署 Kafka 集群