如何搭建自己的gitlab私有仓库

概述

GitLab is The DevSecOps Platform that empowers organizations to deliver software faster, more efficiently, while strengthening security and compliance.

解释:gitlab是一个集开发/安全/运行一体的平台,能够帮助企业组织更快,更高效的交付软件产品,同时更加安全与合规则。

本篇文章用于指导通过docker搭建私有仓库适用于团队间通过git管理代码,文档等,提升团队协作效率。

环境准备

  • macos系统|linux|windows均可,本文采用macos
  • docker-desktop(已包含docker-compose)

硬件要求

CPU

  • 建议4核

RAM

  • 建议8GB RAM

安装

GitLab Docker 镜像这里介绍2种,请先确保本地已经安装了docker,下载安装请参考: www.docker.com/ 目前最新的docker deskop已经包含了docker-compose

!!!需要特别注意:安装目录最好为英文或者拼音字符,不要含有中文字符,否则会存在访问不了的情况

  • 使用 Docker 引擎
  • 使用 Docker-compose

1.docker引擎安装gitlab

  • docker deskop可视化界面拉取镜像
  • docker 命令行拉取镜

    • 打开terminal即命令提示符执行 docker pull gitlab/gitlab-ce:latest
    • 拉取成功后,在deskop桌面点击images即可看到下载好的gitlab-ce镜像
  • 设置运行配置(端口及挂载目录)

注意:端口请填写0-65535之间的数字,映射目录根据自身诉求进行填写

2.docker-compose安装gitlab

  • 在任意目录下建议你自己想安装gitlab目录下,新建docker-compose.yml文件,内容如下:
yaml 复制代码
version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.admin.com'
    ports:
      - '9980:80'
      - '9443:443'
      - '9922:22'
    volumes:
      - '/home/gitlab-docker/config:/etc/gitlab'
      - '/home/gitlab-docker/logs:/var/log/gitlab'
      - '/home/gitlab-docker/data:/var/opt/gitlab'
diff 复制代码
- version 表示版本
- services 表示服务
- web/image 表示镜像
- web/restart 表示启动方式,always表示自启动
- web/hostname 表示运行的域名,如没有通过/etc/hosts内配置,则使用ip访问
- web/ports 表示映射端口列表
- web/volumes 表示目录挂载
  • 在新建docker-compose.yml文件所在目录打开terminal即命令提示符执行 docker-compose up -d

3. 查看当前gitlab运行的容器(容器名称通过此确认)

  • docker deskop可视界面操作
  • docker 命令执行 docker ps

4.修改运行配置

gitlab容器正常运行成功后,直接打开页面访问http://localhost:9980 或者 http://192.168.110.168:9980 当前本人局或网ip地址192.168.110.168,会发现访问不了的情况,一般来说通过localhost是没有问题的,但通过局域网ip访问会存在问题如若能正常访问请跳过此步骤,直接查看[5. 初始化root账户]

出现访问不了情况,不要着急,需要在gitlab运行的容器里继续修改如下配置即可

1)进入容器 docker exec -it gitlab-docker-web-1 /bin/bash

注意:容器名称要写正确,否则无法正常进入

2)修改配置文件/etc/gitlab/gitlab.rb

  • vi /etc/gitlab/gitlab.rb
  • 添加如下内容:
shell 复制代码
#gitlab访问地址
external_url 'http://192.168.110.168:9980'
#gitlab ssh主机
gitlab_rails['gitlab_ssh_host'] = '192.168.110.168'
#gitlab ssh主机连接端口
gitlab_rails['gitlab_shell_ssh_port'] = '9922'
  • 配置生效(执行该命令需要等10几秒时间) gitlab-ctl reconfigure

3) 修改配置文件/opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

  • vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
  • 找到gitlab:,修改内容如下:
yml 复制代码
 gitlab:
    host: 192.168.100.168
    port: 9980
    https: false  
  • gitlab服务重启(执行该命令需要等几秒时间) gitlab-ctl restart

5. 初始化root账户

1)进入容器 docker exec -it gitlab-docker-web-1 /bin/bash

注意:容器名称要写正确,否则无法正常进入 2)进入控制台 输入

shell 复制代码
 gitlab-rails console -e production

3)修改root账户密码,进入控制台后会看见如下界面:

  • 输入代码 user = User.where(id:1).first
  • 输入代码 user.password='ctq111111'
  • 输入代码 user.save!
  • 输入代码 exit

6. 设置域名访问

  • 执行命令
bash 复制代码
sudo vi /etc/hosts  

参考文档

blog.csdn.net/BThinker/ar...

cloud.tencent.com/developer/a...

相关推荐
qq_297574677 小时前
【实战教程】SpringBoot 集成阿里云短信服务实现验证码发送
spring boot·后端·阿里云
韩立学长9 小时前
【开题答辩实录分享】以《智能大学宿舍管理系统的设计与实现》为例进行选题答辩实录分享
数据库·spring boot·后端
编码者卢布11 小时前
【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
后端·python·flask
她说..14 小时前
策略模式+工厂模式实现审批流(面试问答版)
java·后端·spring·面试·springboot·策略模式·javaee
梦梦代码精15 小时前
开源、免费、可商用:BuildingAI一站式体验报告
开发语言·前端·数据结构·人工智能·后端·开源·知识图谱
李慕婉学姐16 小时前
【开题答辩过程】以《基于Spring Boot的疗养院理疗管理系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·spring boot·后端
tb_first16 小时前
SSM速通2
java·javascript·后端
一路向北⁢16 小时前
Spring Boot 3 整合 SSE (Server-Sent Events) 企业级最佳实践(一)
java·spring boot·后端·sse·通信
风象南16 小时前
JFR:Spring Boot 应用的性能诊断利器
java·spring boot·后端
爱吃山竹的大肚肚16 小时前
微服务间通过Feign传输文件,处理MultipartFile类型
java·spring boot·后端·spring cloud·微服务