当前位置: 首页 > 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.lryc.cn/news/618293.html

相关文章:

  • 深入理解二维数组创建与使用
  • 使用正则中的sub实现获取我们匹配的字符串,然后追加指定字符
  • Linux图形化登录界面不显示root
  • SQL Server增加对UTF-8的支持
  • C语言(03)——斐波那契数列的理解和运用(超详细版)
  • 编程与数学 03-003 计算机操作系统 19_操作系统性能优化(二):内存与I/O性能优化
  • python3.10.6+flask+sqlite开发一个越南留学中国网站的流程与文件组织结构说明
  • 一起来聊聊GPT-5
  • PostgreSQL——数据查询
  • [GESP202309 六级] 2023年9月GESP C++六级上机题题解,附带讲解视频!
  • 後端開發技術教學(五) 魔術方法、類、序列化
  • demo 英雄热度榜 (条件筛选—高亮切换—列表渲染—日期显示)
  • Langchain入门:文本摘要
  • [论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类
  • 视频抽取关键帧算法
  • imx6ull-驱动开发篇19——linux信号量实验
  • 【跨服务器的数据自动化下载--安装公钥,免密下载】
  • n8n、Workflow实战
  • 快速了解自然语言处理
  • QT多线程全面讲解
  • NTP常见日志分析
  • MySQL User表入门教程
  • Mysql GROUP_CONCAT函数数据超长导致截取问题记录
  • 测试自动化框架全解读:为什么、类型、优势与最佳实践
  • 分布式光伏气象站:为光伏电站的 “气象感知眼”
  • 【opencv-Python学习笔记(2): 图像表示;图像通道分割;图像通道合并;图像属性】
  • 云原生应用的DevOps3(CI/CD十大安全风险、渗透场景)
  • LeetCode 2787.将一个数字表示成幂的和的方案数:经典01背包
  • 小红书笔记信息获取_实在智能RPA源码解读
  • 使用 NetBird 创建安全的私有网络,简化远程连接!