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

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: alwayshostname: 'gitlab'environment:TZ: 'Asia/Shanghai'GITLAB_OMNIBUS_CONFIG: |external_url 'http://192.168.10.105:3000' # web站点访问地址gitlab_rails['gitlab_shell_ssh_port'] = 222ports:- '3000:3000' # 注意宿主机和容器内部的端口要一致,否则external_url无法访问- '8443:443'- '222:22'volumes:- ./gitlab/config:/etc/gitlab- ./gitlab/data:/var/opt/gitlab- ./gitlab/logs:/var/log/gitlablogging:driver: 'json-file'options:max-size: '2g'
第二步:启动容器
在docker-compose.yml 的同级目录下执行如下命令启动容器:
docker-compose up -d
启动过程稍稍有点久,家人们耐心等待下
如果不出意味的话我们的容器就已经启动了
使用系统
- 登录系统
在浏览器中输入 http://192.168.10.105:3000 访问系统

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

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


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

- 其它操作
其它操作我们就不在此做描述了,家人们可以自行使用。
总结
通过本文介绍的简单步骤,您可以使用 Docker Compose 快速部署私有化的 GitLab 实例。GitLab 提供了强大的代码管理和协作功能,而 Docker Compose 则为您提供了一种简单的部署解决方案,使您可以轻松搭建和管理您的开发环境。
希望本文能帮助您更好地理解 GitLab 和 Docker Compose,并在您的开发工作中提供便利。
相关文章:
使用docker-compose私有化部署 GitLab
在软件开发和协作过程中,版本控制是至关重要的一环。GitLab 是一个功能强大的开源平台,提供了完整的代码管理功能,包括版本控制、问题跟踪以及持续集成等。这使得团队能够更高效地协作开发。前段时间翻阅笔记时,偶然发现了之前公司…...
Vue项目引入百度统计的正确操作步骤,亲测有效!
1、平台获取统计代码 2、在head和body中分别添加以下代码 head: <script>var _hmt _hmt || [];</script>body: <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js…...
Keras中model.evaluate() 返回的是 loss value 和 metrics values
Keras官方文档: https://keras.io/models/model/#evaluate Keras中model.evaluate() 返回的是 损失值和训练时选定的指标值(例如,[AUC, , accuracy])。 训练时选定的指标值是指model.compile()里面metrics后面的值,ev…...
CSRF跨域请求伪造
1.SSRF服务端请求伪造(外网访问内网) SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的…...
LeetCode 1465. 切割后面积最大的蛋糕:纵横分别处理
【LetMeFly】1465.切割后面积最大的蛋糕:纵横分别处理 力扣题目链接:https://leetcode.cn/problems/maximum-area-of-a-piece-of-cake-after-horizontal-and-vertical-cuts/ 矩形蛋糕的高度为 h 且宽度为 w,给你两个整数数组 horizontalCut…...
YTM32的增强型定时器eTMR外设模块详解
文章目录 eTMR外设简介eTMR工作机制系统框图引脚与信号计数器与时钟源输出比较模式PWM模式通道配对通道对的互补输出(Complementary Mode)双缓冲输出PWM(Double Switch)错误检测机制(Fault Detection) 输入…...
40.查找练习题(王道2023数据结构第7章)
试题1(王道7.2.4节综合练习5): 写出折半查找的递归算法。 #include<stdio.h> #include<stdlib.h> #include<string.h>#define MAXSIZE 10 #define ElemType int #define Status inttypedef struct{int data[MAXSIZE]; /…...
Segmentation fault 的bug解决
一,Segmentation fault 的bug解决 问题描述:自己在使用CPU上调试完代码之后,可以稳定运行,有输出结果。 但是把数据和模型加载上GPU之后,出现了报错。 Segmentation fault (core dumped) 搜了一下可能存在的原因&…...
【Python机器学习】零基础掌握BaggingRegressor集成学习
如何提升回归模型的稳定性和准确性? 在实际生活中,比如房价预测,经常会遇到一种情况:有大量的特征和样本数据,但模型的预测准确度仍然不尽人意。这时候,单一的模型(如支持向量机回归)可能表现得并不够好。 考虑到这个问题,解决方案可能是使用集成方法,特别是Baggin…...
麒麟KYLINOS通过命令行配置kysec的防火墙
原文链接:麒麟KYLINOS通过命令行配置kysec的防火墙 hello,大家好啊,今天给大家带来一篇使用命令行配置kysec的防火墙的文章,通过本篇文章的学习,大家可以了解到图形化界面中的防火墙信息是如何生成的,为后期…...
磁盘监控:告警时发送邮件
1.配置邮箱 1.编辑邮箱配置文件 vim /etc/mail.rc2.在末尾输入自己的邮箱配置,以163邮箱为例 #开启ssl set ssl-verifyignore #证书目录,下方为centos系统证书默认位置,也自行生成证书并指定 set nss-config-dir/etc/pki/nssdb # 配置的第…...
【HarmonyOS】元服务卡片router实现跳转到指定页面并传动态参数
【关键字】 元服务卡片、router跳转不同页面、传递动态参数 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现从卡片中点击事件跳转到指定的应用内页面,并传递参数接受参数功能。此处以JS UI开发服务卡片为例,JS卡片支持组件设置ac…...
Centos安装RabbitMQ,JavaSpring发送RabbitMQ延迟延时消息,JavaSpring消费RabbitMQ消息
1,版本说明 erlang 和 rabbitmq 版本说明 https://www.rabbitmq.com/which-erlang.html 确认需要安装的mq版本以及对应的erlang版本。 2,下载安装文件 RabbitMQ下载地址: https://packagecloud.io/rabbitmq/rabbitmq-server Erlang下载地…...
leetcode:1323. 6 和 9 组成的最大数字(python3解法)
难度:简单 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字,将 6 变成 9,或者把 9 变成 6 。 请返回你可以得到的最大数字。 示例 1: 输入:num 9669 输出:9969 解释: 改变…...
SpringBoot集成Redis Cluster集群(附带Linux部署Redis Cluster高可用集群)
目录 一、前言二、集成配置2.1、POM2.2、添加配置文件application.yml2.3、编写配置文件2.4、编写启动类2.5、编写测试类测试是否连接成功 一、前言 这里会使用到spring-boot-starter-data-redis包,spring boot 2的spring-boot-starter-data-redis中,默…...
LLaVA:visual instruction tuning
对近期一些MLLM(Multimodal Large Language Model)的总结 - 知乎本文将从模型结构,训练方法,训练数据,模型表现四个方面对近期的一些MLLM(Multi-modal Large Language Models)进行总结并探讨这四个方面对模型表现的影响…...
Python实现双目标定、畸变矫正、立体矫正
一,双目标定、畸变矫正、立体矫正的作用 双目目标定: 3D重建和测距:通过双目目标定,您可以确定两个摄像头之间的相对位置和朝向,从而能够根据视差信息计算物体的深度,进行三维重建和测距。姿态估计…...
showdoc 文件上传 (cnvd-2020-26585)
showdoc 文件上传 (cnvd-2020-26585) 描述 ShowDoc是一个非常适合IT团队的在线API文档、技术文档工具。通过showdoc,你可以方便地使用markdown语法来书写出美观的API文档、数据字典文档、技术文档、在线excel文档等等。 api_page存在任意文…...
Java数据类型,变量与运算符
1.字面常量 常量是在程序运行期间,固定不变的量称为常量。 public class HelloWorld{public static void main(String[] args){System.out.println("Hello,world");} } 在以上程序中,输出的Hello Word,其中的“Hello Word”就是…...
Linux nm命令
Linux的nm命令主要用于列出对象文件中的符号。以下是一些使用示例: 基本用法:只需运行’nm’命令,并将对象文件的名称作为输入传递给它。例如,我使用’nm’命令与’apl’elf 文件:nm apl。 在输出中为每个符号前面添加…...
利用快马平台快速构建b站a8直播观看页面原型
利用快马平台快速构建B站A8直播观看页面原型 最近想尝试开发一个B站A8直播的观看页面原型,主要想验证一下直播相关的技术方案。作为一个前端开发者,我深知从头开始搭建这样一个页面需要花费不少时间,特别是在处理视频流、弹幕互动和响应式设…...
三维建模师必看:Blender中坐标变换的数学原理与操作技巧
三维建模师必看:Blender中坐标变换的数学原理与操作技巧 在Blender的世界里,每个顶点、每条边、每个面都在三维空间中占据着精确的位置。当我们移动一个物体、缩放一个模型或旋转一个摄像机时,背后是一套精密的数学机制在运作。对于艺术背景的…...
别急着重装!Stable Diffusion WebUI安装失败后,如何利用现有文件快速恢复(Mac/Windows通用)
别急着重装!Stable Diffusion WebUI安装失败后,如何利用现有文件快速恢复(Mac/Windows通用) 当你兴致勃勃地准备体验Stable Diffusion WebUI的强大功能时,突然在安装过程中遇到错误提示,那种挫败感可想而知…...
【OpenCore Configurator】:解决黑苹果配置难题的智能化解决方案
【OpenCore Configurator】:解决黑苹果配置难题的智能化解决方案 【免费下载链接】OpenCore-Configurator A configurator for the OpenCore Bootloader 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Configurator OpenCore Configurator作为一款针…...
CCF推荐C类会议与期刊全景解析:计算机网络研究者的学术地图
1. CCF推荐C类会议与期刊:计算机网络研究者的学术指南针 刚进入计算机网络领域的研究生常常会面临一个困惑:面对海量的学术会议和期刊,到底该从哪里入手?中国计算机学会(CCF)推荐的C类会议和期刊就像一张精…...
Graphormer效果可视化:预测结果置信度热力图与分子原子重要性归因展示
Graphormer效果可视化:预测结果置信度热力图与分子原子重要性归因展示 1. 模型概述 Graphormer是一种基于纯Transformer架构的图神经网络,专门为分子图(原子-键结构)的全局结构建模与属性预测而设计。该模型在OGB、PCQM4M等分子…...
用STM32CubeMX配置PWM捕获:从定时器选型到串口输出全流程
STM32CubeMX实战:PWM捕获全流程解析与调试技巧 在嵌入式开发中,精确测量PWM信号的周期和占空比是常见需求。本文将带你从零开始,使用STM32CubeMX和HAL库完成PWM捕获功能的完整实现。不同于简单的教程复制,我们会深入探讨两种捕获…...
新手必看,用快马生成的示例代码轻松学懂stm32f103c8t6引脚配置
作为一个刚接触STM32的开发者,我完全理解新手面对芯片引脚配置时的困惑。最近在InsCode(快马)平台尝试生成STM32F103C8T6的示例代码时,发现它特别适合用来建立引脚功能与代码的映射关系。下面分享我的学习过程: 理解芯片引脚特性 STM32F103C…...
运维系列【仅供参考】:【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧
【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧 【Docker】容器生命周期管理:从优雅停止到高效清理的实战技巧 摘要 1. 为什么需要关注容器生命周期管理? 2. 停止容器的艺术:从温柔到强硬 2.1 优雅停止的正确姿势 2.2 何时该用强制终止 2.3 暂停与恢复的妙用 …...
LabVIEW视觉项目效率翻倍:海康相机+OpenCV/NI Vision混合编程实战
LabVIEW视觉项目效率翻倍:海康相机OpenCV/NI Vision混合编程实战 在工业自动化领域,视觉检测系统的开发效率往往决定了产品上市时间。作为一名长期奋战在产线调试一线的工程师,我发现许多同行在使用LabVIEW进行视觉项目开发时,都会…...
