Docker 搭建 Gitlab 服务器 (完整详细版)

news2025/7/11 12:23:14

参考

Docker 搭建 Gitlab 服务器 (完整详细版)_docker gitlab-CSDN博客
Docker 安装 (完整详细版)_docker安装-CSDN博客
Docker 日常命令大全(完整详细版)_docker命令-CSDN博客

1、Gitlab镜像

# 查找Gitlab镜像
docker search gitlab

# 拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latest

2、启动Gitlab容器 

# 启动容器
docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce

命令描述
-i以交互模式运行容器,通常与 -t 同时使用命令解释
-t为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 后台运行容器,并返回容器ID
-p 9980:80将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口
-p 9922:22  将容器内22端口映射至宿主机9922端口,这是访问ssh的端口
-v /home/gitlab/etc:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab-test/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab 设置容器名称为gitlab
gitlab/gitlab-ce 镜像的名称,这里也可以写镜像ID

接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问

 3、修改配置

#进容器内部
docker exec -it gitlab /bin/bash

#修改gitlab.rb
vi /etc/gitlab/gitlab.rb
 
#加入如下
#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.124.194'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.124.194'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
 
# 让配置生效
gitlab-ctl reconfigure


 

### 注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.124.194:9980,所以,要修改下面文件

# 修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

  gitlab:
    host: 192.168.124.194
    port: 9980 # 这里改为9980
    https: false

#重启gitlab 
gitlab-ctl restart
#退出容器 
exit


4、浏览器访问 


路径访问:http://192.168.124.194:9980/

# 机器配置要大于4g,否则很容易启动不了,报502

# 第一次访问,会让修改root密码
# 修改后以root用户登录即可 


5、 修改root密码

# 进入容器内部
docker exec -it gitlab /bin/bash
 
# 进入控制台
gitlab-rails console -e production
 
# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first
# 修改密码为lhx123456
user.password='lhx123456'
# 保存
user.save!
# 退出
exit


6、Gitlab操作

创建分组,创建项目

 

至此,Docker搭建Gitlab服务器完成!!!

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

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

相关文章

MongoDB安全管理

MongoDB如何鉴权 保证数据的安全性是数据库的重大职责之一。与大多数数据库一样,MongoDB内部提供了一套完整的权限防护机制。如下例所示: mongo --host 127.0.0.1 --port 27017 --username someone --password errorpass --authenticationDatabasestor…

架构案例:从初创互联网公司到分布式存储与反应式编程框架的架构设计

文章目录 引言一、初创互联网公司架构演化案例1. 万级日订单级别架构2. 十万级日订单级别架构3. 百万级日订单级别架构 二、分布式存储系统 Doris 架构案例三、反应式编程框架架构案例总结 引言 分布式架构 今天我们将探讨三种不同类型的架构案例,分别探讨 一个初…

神经网络之CNN图像识别(torch api 调用)

1.简介 CNN 是受生物学上感受野机制启发而提出的。它通过卷积操作自动提取数据中的特征,避免了传统机器学习方法中复杂的特征工程过程,能够自动学习到数据中的有效特征,从而进行分类、识别等任务。 2.结构 2.1卷积: 假设你有一…

使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目

文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…

学生管理前端

文章目录 首页student.html查询功能 首页 SpringBoot前端html页面放在static文件夹下:/src/main/resources/static 默认首页为index.html,我们可以用两个超链接或者两个button跳转到对应的页面。这里只是单纯的跳转页面,不需要提交表单等其…

DeepSeek 助力 Vue3 开发:打造丝滑的网格布局(Grid Layout)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

lvgl运行机制分析

lv_timer_handler() 是 LVGL 的“心脏”:这个函数会依次做以下事情: 处理定时器(如动画、延迟回调)。 读取输入设备(如触摸屏、按键的状态)。 刷新脏区域(仅重绘屏幕上发生变化的区域&#xf…

8 SpringBoot进阶(上):AOP(面向切面编程技术)、AOP案例之统一操作日志

文章目录 前言1. AOP基础1.1 AOP概述: 什么是AOP?1.2 AOP快速入门1.3 Spring AOP核心中的相关术语(面试)2. AOP进阶2.1 通知类型2.1.1 @Around:环绕通知,此注解标注的通知方法在目标方法前、后都被执行(通知的代码在业务方法之前和之后都有)2.1.2 @Before:前置通知,此…

day01_Java基础

文章目录 day01_Java基础一、今日课程内容二、Java语言概述(了解)1、Java语言概述2、为什么要学习Java语言3、Java平台版本说明4、Java特点 三、Java环境搭建(操作)1、JDK和JRE的概述2、JDK的下载和安装3、IDEA的安装4、IDEA的启动…

cursor 弹出在签出前,请清理仓库工作树 窗口

问题出现的背景:是因为我有两台电脑开发,提交后,另一个电脑的代码是旧的,这个时候我想拉取最新的代码,就会出现如下弹窗,因为这个代码暂存区有记录或者工作区有代码的修改,所以有冲突&#xff0…

详解直方图均衡化

直方图均衡化(Histogram Equalization) 是图像处理中一种常用的对比度增强技术,通过调整图像的灰度分布,使得图像的直方图尽可能均匀分布,从而提高图像的对比度和细节表现。以下是直方图均衡化的原理详解: …

Kibana:Spotify Wrapped 第二部分:深入挖掘数据

作者:来自 Elastic Philipp Kahr 我们将比以往更深入地探究你的 Spotify 数据并探索你甚至不知道存在的联系。 在由 Iulia Feroli 撰写的本系列的第一部分中,我们讨论了如何获取 Spotify Wrapped 数据并在 Kibana 中对其进行可视化。在第 2 部分中&#…

C++—类与对象(中)

目录 1、类的6个默认成员函数 2、构造函数 构造函数的特性 3、初始化列表 4、析构函数 概念 5、拷贝构造函数 6、运算符重载 7、赋值运算符重载 赋值运算符重载格式 8、前置和后置重载 9、const修饰的成员 10、取地址及const取地址重载 1、类的6个默认成员函数 一…

MySQL 事务笔记

MySQL 事务笔记 目录 事务简介事务操作事务四大特性并发事务问题事务隔离级别总结 事务简介 事务(Transaction)是数据库操作的逻辑单元,由一组不可分割的SQL操作组成。主要用于保证: 多个操作的原子性(要么全部成功…

网络空间安全(7)攻防环境搭建

一、搭建前的准备 硬件资源:至少需要两台计算机,一台作为攻击机,用于执行攻击操作;另一台作为靶机,作为被攻击的目标。 软件资源: 操作系统:如Windows、Linux等,用于安装在攻击机和…

HarmonyOS学习第11天:布局秘籍RelativeLayout进阶之路

布局基础:RelativeLayout 初印象 在 HarmonyOS 的界面开发中,布局是构建用户界面的关键环节,它决定了各个组件在屏幕上的位置和排列方式。而 RelativeLayout(相对布局)则是其中一种功能强大且灵活的布局方式&#xff0…

【2025年2月28日稳定版】小米路由器4C刷机Immortalwrt 23.05.4系统搭载mentohust 0.3.1插件全记录

小米路由器4C刷机Immortalwrt系统搭载mentohust插件全记录 首先将路由器按住后面的reset,用一个针插进去然后等待5s左右,松开,即可重置路由器。 然后要用物理网线物理连接路由器Lan口和电脑,并将路由器WAN口连接至网口。确保电脑…

【SpringBoot+Vue】博客项目开发二:用户登录注册模块

后端用户模块开发 制定参数交互约束 当前,我们使用MybatisX工具快速生成的代码中,包含了一个实体类,这个类中包含我们数据表中的所有字段。 但因为有些字段,是不应该返回到前端的,比如用户密码,或者前端传…

idea + Docker + 阿里镜像服务打包部署

一、下载docker desktop软件 官网下载docker desktop,需要结合wsl使用 启动成功的画面(如果不是这个画面例如一直处理start或者是stop需要重新启动,不行就重启电脑) 打包成功的镜像在这里,如果频繁打包会导致磁盘空间被占满,需…

ubuntu 20.04 安装labelmg

1. 下载安装包 下载链接:下载链接 2. 安装启动 # 创建labelImg的环境 conda create -n labelImg# 激活labelImg环境 source activate labelImg安装依赖 pip install pyqt5-dev-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/cd requirements/pip install -…