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

news/2025/2/26 7:53:39

参考

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.niftyadmin.cn/n/5868339.html

相关文章

基于django图书信息管理系统的搭建(增删改查)

✍django项目搭建教程 ☞ ----------------- 教程 本文主要讲解django如何连接数据库MySQL并且可视化展示,实现增删改查功能 目录 一. 创建django应用 二. 数据库配置 三. 查看数据库 四. 编写代码 4.1视图函数 4.2 配置URL 4.3创建模板文件 4.…

vue2 ruoyi websocket轮询

文章目录 前言一、websocket和心跳是什么?二、使用步骤1.2.监听变化3.关闭 总结 前言 websocket,实现与后端通讯,使用心跳机制,断联自动恢复。 一、websocket和心跳是什么? WebSocket WebSocket 是一种网络通信协议&a…

JSP+Servlet 实现分页(Tomcat 9)

访问地址 项目路径/mulPageSystem java文件;包名org.rain.bean 文件名 PageSystemBean package org.rain.bean; public class PageSystemBean { private String school; private String home; public String getSchool() { return school; } public void s…

Vue的项目创建以及项目目录与组合式API

一.创建Vue 1.Vue-CLI:创建Vue的脚手架工具 2.Create-vue:是Vue官方提供的脚手架之一,底层采用官方自主研发的vite,快捷,开发方便。 3.准备工作:系统中需要安装nodejs环境,在该环境中提供npm包管理器 4.创建Vue项目的命令:npm init vuela…

最新前端框架选型对比与建议(React/Vue/Svelte/Angular)

前端框架选型对比与建议(React/Vue/Svelte/Angular) 一、核心框架技术特性对比(基于最新版本) 维度React 19 25Vue 3.5 12Svelte 5 25Angular 19 5核心理念函数式编程、JSX语法、虚拟DOM渐进式框架、组合式API、模板语法编译时框…

SQL注入(order by,limit),seacms的报错注入以及系统库的绕过

1:如果information_schema被过滤了,该怎么绕过 1.1:介绍一下information_schema这个库 information_schema 是一个非常重要的系统数据库,它在SQL标准中定义,并且被许多关系型数据库管理系统(RDBMS&#x…

音视频编码和封装格式

文章目录 音视频编码格式音频编码视频编码 音视频封装格式 音视频编码格式 音频编码 音频编码是一种将音频信号转换为数字形式的过程,目的是减少数据中的冗余,以便存储和传输。 音频编码的实质是通过抽样、量化和编码三个步骤,将连续变化的…

爬虫运行后如何保存数据?

爬虫运行后,将获取到的数据保存到本地或数据库中是常见的需求。Python 提供了多种方式来保存数据,包括保存为文本文件、CSV 文件、JSON 文件,甚至存储到数据库中。以下是几种常见的数据保存方法,以及对应的代码示例。 1. 保存为文…