使用docker-compose私有化部署 GitLab

news2024/11/16 11:43:11

在软件开发和协作过程中,版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台,提供了完整的代码管理功能,包括版本控制、问题跟踪以及持续集成等。这使得团队能够更高效地协作开发。前段时间翻阅笔记时,偶然发现了之前公司关于 GitLab 部署的笔记。今天,我想和大家分享一下 GitLab 的基本概念,并展示如何利用 Docker Compose 实现其私有化部署。

gitlab.jpg

GitLab 简介

GitLab 是一个基于 Git 的 Web 应用程序,提供了存储库管理、问题跟踪和持续集成功能。其主要特点包括:

  • 版本控制系统:GitLab 支持版本控制系统,使团队能够轻松地管理代码库和版本历史。
  • 问题跟踪:能够创建、分配和解决问题,更好地管理项目的开发过程。
  • 持续集成与持续部署:GitLab 提供了强大的持续集成与持续部署功能,使开发团队能够自动化构建、测试和部署他们的应用程序。

使用 Docker Compose 部署 GitLab

第一步:创建docker-compose.yml文件

首先创建一个gitlab的部署目录:

mkdir gitlab

在此目录下创建docker-compose.yml文件

version: '3.3'

services:
  gitlab:
    image: 'gitlab/gitlab-ce:14.10.2-ce.0'
    restart: always
    hostname: 'gitlab'
    environment:
      TZ: 'Asia/Shanghai'
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.10.105:3000'  # web站点访问地址
        gitlab_rails['gitlab_shell_ssh_port'] = 222
    ports:
      - '3000:3000' # 注意宿主机和容器内部的端口要一致,否则external_url无法访问
      - '8443:443'
      - '222:22'
    volumes:
      - ./gitlab/config:/etc/gitlab
      - ./gitlab/data:/var/opt/gitlab
      - ./gitlab/logs:/var/log/gitlab
    logging:
      driver: 'json-file'
      options:
        max-size: '2g'

第二步:启动容器

在docker-compose.yml 的同级目录下执行如下命令启动容器:

docker-compose up -d 

启动过程稍稍有点久,家人们耐心等待下

如果不出意味的话我们的容器就已经启动了

使用系统

  • 登录系统

在浏览器中输入 http://192.168.10.105:3000 访问系统

_20231024231002.jpg

默认用户为: root
密码在gitlab部署目录下gitlab下的gitlab/config/initial_root_password 这个文件中

_20231024231358.jpg

  • 修改语言

在系统上将语言设置为中文

_20231024231515.jpg

_20231024231532.jpg

保存完成之后刷新页面即可

_20231024231548.jpg

  • 其它操作

其它操作我们就不在此做描述了,家人们可以自行使用。

总结

通过本文介绍的简单步骤,您可以使用 Docker Compose 快速部署私有化的 GitLab 实例。GitLab 提供了强大的代码管理和协作功能,而 Docker Compose 则为您提供了一种简单的部署解决方案,使您可以轻松搭建和管理您的开发环境。

希望本文能帮助您更好地理解 GitLab 和 Docker Compose,并在您的开发工作中提供便利。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1130405.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

wf-docker集群搭建(未完结)

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、redis集群二、mysql集群三、nacos集群1. 环境要求2. 拉取镜像2.1. 拉取镜像方式配置集群2.2. 自定义nacos镜像配置集群 3 自定义…

怎么选择好的游戏平台开发商?

选择好的游戏平台开发商需要考虑以下几个方面: 开发经验 了解游戏开发公司的历史和经验是找到靠谱公司的重要步骤。查看公司的官方网站、社交媒体账号等渠道,了解公司的发展历程、团队规模、客户案例等。同时,了解公司是否有相关的游戏开发经…

创建 Edge 浏览器扩展教程(下)

创建 Edge 浏览器扩展教程(下) 创建扩展教程,第 2 部分1:更新弹出窗口.html以包含按钮2:更新弹出窗口.html在浏览器选项卡顶部显示图像3:创建弹出式 JavaScript 以发送消息4:从任何浏览器选项卡…

python爬虫分析基于python图书馆书目推荐数据分析与可视化

收藏关注不迷路 文章目录 前言一、项目介绍二、开发环境三、功能介绍四、核心代码五、效果图六、文章目录 前言 随着电子技术的普及和快速发展,线上管理系统被广泛的使用,有很多商业机构都在实现电子信息化管理,图书推荐也不例外&#xff0c…

AI智能监控平台EasyCVR+无人机方案:实时全景无死角全方面助力山区安防系统新升级

无人机作为高速发展的高科技设备,技术日趋成熟,目前已经被广泛应用于农业、森林防护、医疗、交通物流等等场景。但随着城市化进程的加快,人类对自然环境日益严重的破坏,近十几年来,森林火灾的发生频率和失火严重程度一…

设计模式(12)状态模式

参考【设计模式】用Java实现状态模式_java 状态模式_卷帘的博客-CSDN博客 一、介绍: 1、状态模式:是一种行为设计模式,它允许对象在内部状态发生改变时改变其行为。该模式将对象的行为包装在不同的状态类中,使得对象的行为可以根…

Node编写重置用户密码接口

目录 前言 定义路由和处理函数 验证表单数据 实现重置密码功能 前言 接前面文章,本文介绍如何编写重置用户密码接口 定义路由和处理函数 路由 // 重置密码的路由 router.post(/updatepwd, userinfo_handler.updatePassword) 处理函数 exports.updatePasswo…

python造测试数据存到excel

代码: from ExcelHandler import ExcelHandler from faker import Faker # 导入faker库的Faker方法 # ↓默认为en_US,只有使用了相关语言才能生成相对应的随机数据 fkFaker(locale"zh_CN")def create_date():m int(input(请输入要造的数据条…

Zabbix“专家坐诊”第208期问答汇总

问题一 Q:请问大佬们,我的测试机部署了2个版本的zabbix服务端,在启动第二个的时候报这个错,请问这个路径能在配置文件修改吗? SYJKLiLB64dded94d3c0c.png A:报错是你的进程存在,无法启动。一个…

【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--笔记

0. 内容 1. 时间戳同步问题及意义 时间戳同步的原因:如果不同步,由于IMU频率高,可能由于时间戳不同步而导致在两帧camera之间的时间内用多了或者用少了IMU的数据,且时间不同步会导致我们首尾camera和IMU数据时间不同,…

docker和K8S环境xxl-job定时任务不执行问题总结

文章目录 xxl-job 任务调度原理1 问题1 时区导致的任务没有执行的问题解决方案 2 执行器注册和下线导致的问题(IP问题)解决方案 3 问题3 调度成功,但是执行器的定时任务未执行4 问题4 数据库性能问题,导致查询任务和操作日志数据卡…

I/O 模型学习笔记【全面理解BIO/NIO/AIO】

文章目录 I/O 模型什么是 I/O 模型Java支持3种I/O模型BIO(Blocking I/O)NIO(Non-blocking I/O)AIO(Asynchronous I/O) BIO、NIO、AIO适用场景分析 java BIOJava BIO 基本介绍Java BIO 编程流程一个栗子实现…

Unity使用c#开发apk项目(十九)(Failed to find entry-points:System.Exception: )

文章目录 前言解决方案:1.报警信息如下2.选择3d urp3.引入Fusion之后选择包管理,点击Burst中的Advanced Project Settings4.勾选两个预设选项5.引入官网unity.burst6.更新后报警消失前言 制作局域网游戏,出现未找到进入点报警 Failed to find entry-points 解决方案: 1.报…

二十二、设计模式之访问者模式

目录 二十二、设计模式之访问者模式能帮我们干什么?主要解决什么问题?特点 优缺点优点缺点: 使用的场景角色实现访问者模式 总结 二十二、设计模式之访问者模式 所属类型定义行为型表示一个作用于某对象结构中的各元素的操作。它使你可以在不…

【学习笔记】Git开发流程

Git开发大致流程图: 具体流程: 首先一个从仓库的main分支,然后从main分支中拉一个功能分支feature/xxx,在多人开发这个功能的时候拉去自己的个人分支比如:xxx/xxx 。然后每天开发完个人分支后压缩commit,…

flask连接sqllite,并进行一些基本的增删改查操作

flask连接sqllite,并进行一些基本的增删改查操作 😇博主简介:我是一名正在攻读研究生学位的人工智能专业学生,我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑,欢迎随时来交流…

docker部署prometheus+grafana服务器监控(三) - 配置grafana

查看 prometheus 访问 http://ip:9090/targets,效果如下,上面我们通过 node_exporter 收集的节点状态是 up 状态。 配置 Grafana 访问 http://ip:3000,登录 Grafana,默认的账号密码是 admin:admin,首次登录需要修改…

【STM32】HAL库ADC多通道精准测量(采用VREFINT内部参考电压)

【STM32】HAL库ADC多通道精准测量(采用VREFINT内部参考电压) 文章目录 多通道测量VREFINTADC采样周期多通道配置 附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作…

如何在Android Termux上安装MySQL并实现公网远程访问?

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

Django 地址接口开发

应用 Mixin 混合类进行收货地址接口开发 python ../manage.py startapp address继承了mixins扩展类,进到里面可以稍微看下源码 该方法帮我们实现了获取验证及保存的功能 address/views from rest_framework.generics import GenericAPIView from rest_framewo…