使用docker compose安装gitlab

使用docker compose安装gitlab

    • GitLab简介
    • 设置GITLAB_HOME路径
    • 创建docker挂载目录
    • 获取可用的GitLab版本
    • 编写docker-compose.yml文件
    • 启动docker
    • 基础配置
      • GITLAB_OMNIBUS_CONFIG
      • 修改配置
    • 中文设置
    • 数据库配置
    • 系统邮箱配置

GitLab简介

‌GitLab是一个基于Git的开源项目,旨在帮助团队更高效地合作和开发软件。‌它使用Ruby on Rails框架构建,提供了一个自托管的Git仓库管理工具,支持版本控制、代码审查、持续集成和持续部署等功能。‌

主要功能包括:

-‌ 版本控制‌:用户可以创建分支、合并代码,并处理冲突,确保代码的历史和变更管理得当。
‌- 代码审查‌:团队成员可以通过拉取请求(Pull Requests)对提交的代码进行评论和讨论,确保代码质量。
‌- 持续集成/持续部署(CI/CD)‌:GitLab内置了CI/CD功能,支持自动化的构建、测试和部署流程,提高开发效率。
‌- 项目管理‌:通过Issue跟踪、看板、里程碑等功能,帮助团队管理项目进度和任务。

GitLab还提供了权限管理和审计日志,确保代码的安全性和合规性,适用于从小型开源项目到大型企业级应用的各种规模团队。
GitLab是实现 DevOPS 自动化开发运维流水线的经典工具。

设置GITLAB_HOME路径

先设置一个 GITLAB_HOME 环境变量,为gitlab的工作目录。有2个方式:

  1. 写入环境变量配置文件(推荐)。在 docker-compose.yml 文件的同级目录创建 .env 文件。写入 GITLAB_HOME=/srv/gitlab

  2. 添加到shell的启动配置文件中。echo "GITLAB_HOME=/srv/gitlab" >> ~/.bash_profile

通过第2种方式添加配置后,使用 source ~/.bash_profile 命令,使配置生效

创建docker挂载目录

进入上一步骤设置的 $GITLAB_HOME 目录中,新建 data, logs, config 个文件夹。

如下所示:

宿主机目录容器内部目录说明
$GITLAB_HOME/data/var/opt/gitlabStores application data.
$GITLAB_HOME/logs/var/log/gitlabStores logs.
$GITLAB_HOME/config/etc/gitlabStores the GitLab configuration files.

获取可用的GitLab版本

# 镜像名格式:
gitlab/gitlab-ce:<version>-ce.0

# 指定固定版本镜像
gitlab/gitlab-ce:17.6.2-ce.0

# 使用最新版本镜像
gitlab/gitlab-ce:latest

编写docker-compose.yml文件

docker-compose.yml:

version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:17.6.2-ce.0
    container_name: gitlab
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://gitlab.example.com:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2424
    ports:
      - '8929:8929'
      - '443:443'
      - '2424:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'

通过 GITLAB_OMNIBUS_CONFIG 环境变量,配置 external_url 参数,设定仓库的HTTP地址。

ports 的端口映射,以 GITLAB_OMNIBUS_CONFIG 的相关配置项为准。

启动docker

docker compose up -d

容器首次启动,需要数分钟的时间,请耐心等待。
启动成功后,容器状态由 (health: starting) 变为 (healthy)。如下所示:

NAME      IMAGE                          COMMAND             SERVICE   CREATED       STATUS                             PORTS
gitlab    gitlab/gitlab-ce:17.6.2-ce.0   "/assets/wrapper"   gitlab    2 hours ago   Up 12 seconds (health: starting)   0.0.0.0:443->443/tcp, :::443->443/tcp, 80/tcp, 0.0.0.0:8929->8929/tcp, :::8929->8929/tcp, 0.0.0.0:2424->22/tcp, [::]:2424->22/tcp
NAME      IMAGE                          COMMAND             SERVICE   CREATED       STATUS                    PORTS
gitlab    gitlab/gitlab-ce:17.6.2-ce.0   "/assets/wrapper"   gitlab    3 hours ago   Up 51 minutes (healthy)   0.0.0.0:443->443/tcp, :::443->443/tcp, 80/tcp, 0.0.0.0:8929->8929/tcp, :::8929->8929/tcp, 0.0.0.0:2424->22/tcp, [::]:2424->22/tcp

查看容器运行日志:

sudo docker logs -f gitlab

通过前面配置的 external_url,访问 GitLab 项目地址,登录root账号。

  • 用户名为: root
  • 用户密码查看文件:宿主机的 $GITLAB_HOME/config/initial_root_password 或容器内的 /etc/gitlab/initial_root_password

注:The password file is automatically deleted in the first container restart after 24 hours.

基础配置

GITLAB_OMNIBUS_CONFIG

GITLAB_OMNIBUS_CONFIG 环境变量,允许预设 gitlab.rb 文件的配置项。
具有以下特点:

  • 比容器内的 gitlab.rb 配置文件更先被读取。
  • 只会在系统启动时被加载,而不会直接修改 gitlab.rb 文件。
  • 允许设置多个配置项,使用 ; 符号隔开。

配置可包含 GitLab项目地址,数据库配置等。具体请见: gitlab.rb文件配置模板

  • external_url:项目主页。如:"http://gitlab.example.com:8929"
  • gitlab_rails['gitlab_shell_ssh_port']:SSH端口。如:2424
  • gitlab_rails['initial_root_password']: 项目初始化时,预设的root用户密码。

项目首次启动时,也可在容器内注入环境变量 GITLAB_ROOT_PASSWORD ,预设 root 用户的登录密码。

Docker运行命令如下所示:

sudo docker run --detach \
  --hostname gitlab.example.com \
  --env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com:8929'; gitlab_rails['gitlab_shell_ssh_port'] = 2424" \
  --publish 8929:8929 --publish 2424:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:<version>-ce.0

修改配置

  1. 进入容器:sudo docker exec -it gitlab /bin/bash
  2. 修改配置文件:editor /etc/gitlab/gitlab.rb
  3. 重载配置:gitlab-ctl reconfigure

中文设置

  1. 全局设置:左下角菜单 Admin,点击:Settings - Preferences。 页面找到 Localization - Default language

  2. 用户个性化设置:点击左上角用户头像,下拉框选择 Preferences。页面找到 Localization - Language

当前用户,一定是更改 用户个性化设置,才能生效:

在页面右上方的用户菜单中,选择“Settings”。
进入Settings页面后,点击左侧导航栏中的“Preferences”选项。
在Preferences页面中,找到“Localization”区域,将“Language”选项修改为“简体中文”。
点击页面下方的“Save changes”按钮,保存语言设置。

数据库配置

GitLab 16.0 起,GitLab默认使用2个数据库连接。我们可以禁用,回到原始的单连接模式。

sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
gitlab_rails['databases']['ci']['enable'] = false
sudo docker restart gitlab

系统邮箱配置

  1. 修改配置文件:/etc/gitlab/gitlab.rb
  2. 重载配置,使其生效:gitlab-ctl reconfigure
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'peer'

# If your SMTP server does not like the default 'From: gitlab@localhost' you
# can change the 'From' with this setting.
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@example.com'

# If your SMTP server is using a self signed certificate or a certificate which
# is signed by a CA which is not trusted by default, you can specify a custom ca file.
# Please note that the certificates from /etc/gitlab/trusted-certs/ are
# not used for the verification of the SMTP server certificate.
gitlab_rails['smtp_ca_file'] = '/path/to/your/cacert.pem'

示例:QQ exmail (腾讯企业邮箱)

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxx@xx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'xxxx@xx.com'
gitlab_rails['smtp_domain'] = "exmail.qq.com"

https://docs.gitlab.com/17.6/ee/install/docker/installation.html
Steps after installing GitLab: https://docs.gitlab.com/17.6/ee/install/next_steps.html

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Mac上Stable Diffusion的环境搭建(还算比较简单)

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Installation-on-Apple-Silicon AI兴起的速度是真的快&#xff0c;感觉不了解点相关的东西都要与时代脱节了&#xff0c;吓得我赶紧找个AIGC看看能不能实现我艺术家的人梦想&#xff08;绷不住了&#xff09; 我…

什么是虚拟机?常用虚拟机软件有哪些?

目录 VMware Workstation Oracle VM VirtualBox Microsoft Hyper-V 虚拟机&#xff08;Virtual Machine&#xff0c;简称VM&#xff09;是一种通过软件模拟的具有完整硬件系统功能的、运行在计算机上的软件。它允许用户在单一物理机器上同时运行多个操作系统&#xff0c;每个…

git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表

好的&#xff0c;git branch -r 这个命令用于列出远程分支。让我详细解释一下&#xff1a; 命令&#xff1a; git branch -rdgqdgqdeMac-mini ProductAuthentication % git branch -rorigin/main作用&#xff1a; 这个命令会显示你本地仓库知道的所有 远程分支 的列表。它不…

Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)

01.生命周期 Vue生命周期&#xff1a;就是一个Vue实例从创建 到 销毁 的整个过程 生命周期四个阶段&#xff1a;① 创建 ② 挂载 ③ 更新 ④ 销毁 1.创建阶段&#xff1a;创建响应式数据 2.挂载阶段&#xff1a;渲染模板 3.更新阶段&#xff1a;修改数据&#xff0c;更新视图 4…

安装SQL Server2019 Developer版本时出现“服务没有及时响应启动或控制请求”的问题

1. 异常描述 2. 异常分析 应该是数据库服务所属账户的权限不够&#xff0c;可以设置为Administrator&#xff1b; 3. 异常解决 参考资料&#xff1a;https://blog.csdn.net/zi_longh/article/details/130293081 注意&#xff1a;SQL Server代理和SQL Server数据库引擎的账户…

【系统移植】制作SD卡启动——将uboot烧写到SD卡

在开发板上启动Linux内核&#xff0c;一般有两种方法&#xff0c;一种是从EMMC启动&#xff0c;还有一种就是从SD卡启动&#xff0c;不断哪种启动方法&#xff0c;当开发板上电之后&#xff0c;首先运行的是uboot。 制作SD卡启动&#xff0c;首先要将uboot烧写到SD卡&#xff…

2. FPGA基础了解--全局网络

前言 引入扇出的概念介绍FPGA中的全局网络为后续时序优化埋下伏笔 扇出 在FPGA设计中扇出是一个重要的概念&#xff0c;所谓的扇出就是一个控制信号所能控制的数据信号的总个数&#xff0c;比如ctrl信号的扇出就是16 reg ctrl 0; reg [15:0] out 0; always (posedge c…

RAGFlow(3):VScode端口转发在在本机浏览(比内网穿透好用)

docker会在内网服务器上的80端口部署&#xff0c;然而内网Ip是无法访问到的&#xff0c;所以无法看到页面。所以之前想到的解决方法是利用zerotier工具做内网穿透&#xff0c;将内网服务器的公网ip和本机ip组成一个局域网&#xff0c;把内网Ip变成了192.168xxx&#xff0c;这样…

生成式AI大模型未来发展趋势:开启创造力无限可能

随着人工智能技术的不断突破&#xff0c;生成式AI大模型正逐渐成为业界关注的焦点。从文本生成、图像创作到音乐创作&#xff0c;生成式AI大模型在多个领域展现出惊人的创造力。展望未来&#xff0c;生成式AI大模型的发展趋势将呈现以下特点&#xff1a; 一、模型规模持续扩大&…

Mybatis增删改查(配置文件版)

准备环境 1、数据库表tb_brand 2、实体类Brand 3、测试用例 3、1在test包中的java包中创建测试类com.xyy.test.MybatisTest.java 4、安装MyBatisX插件 添加插件后&#xff0c;因为在Mapper代理开发时&#xff0c;Mapper接口要和Mapper.xml映射文件放在同一个报下&#xff0…

Activiti开启流程实例

开始绘流程图&#xff0c;首先右击鼠标可以看到一下图标&#xff0c;都有相对应的意思 画好一个简易的流程过后&#xff0c;可以看到xml文件中已经有了 右击生成png格式的图片 图片点击后就是一个视图的效果 将流程文件部署 Test public void testDeploy() {//1.创建流程引擎P…

12.19问答解析

概述 某中小型企业有四个部门&#xff0c;分别是市场部、行政部、研发部和工程部&#xff0c;请合理规划IP地址和VLAN&#xff0c;实现企业内部能够互联互通&#xff0c;同时要求市场部、行政部和工程部能够访问外网环境(要求使用OSPF协议)&#xff0c;研发部不能访问外网环境…

完全离线使用,效率直接拉满

现在越来越多的人使用OCR软件来提高自己的工作效率&#xff0c;今天给大家推荐一款电脑端的文字识别工具&#xff0c;对比以往的软件来说&#xff0c;功能更加丰富全面。 Umi-OCR 美术、舞蹈、音乐 打开软件之后需要安装一下。 软件主要有截图OCR识别、批量OCR识别、批量文档识…

UITableView实现通讯录效果

// // TableViewIndexViewController.m // study2024 // // Created by figo zhu on 2024/12/22. //#import "TableViewIndexViewController.h" //实现协议UITableViewDelegate,UITableViewDataSource interface TableViewIndexViewController ()<UITableView…

【HarmonyOs学习日志(14)】计算机网络之域名系统DNS

域名系统DNS 域名系统DNS——从域名解析出IP地址 文章目录 域名系统DNS概述域名到IP地址的解析 互联网的域名结构命名标准 域名服务器域名的解析过程 概述 域名系统DNS&#xff08;Domain Name System&#xff09;是互联网使用的命名系统&#xff0c;用来把便于人们使用的机器…

贪心算法【Lecode_HOT100】

文章目录 1.买卖股票的最佳时机No.1212.跳跃游戏No.553.跳跃游戏IINo.454.划分字母区间No.763 1.买卖股票的最佳时机No.121 class Solution {public int maxProfit(int[] prices) {if (prices null || prices.length 0) {return 0;}// 初始化买入价格为最大值&#xff0c;最大…

【PCIe 总线及设备入门学习专栏 4 -- PCIe四种地址空间介绍】

文章目录 Overview1. 配置空间2. IO 空间3. Memory 空间BAR空间示例 -- 32bit内存地址空间请求BAR空间示例 -- 64bit内存地址空间请求 4. message空间 转自&#xff1a;cpu_arch 芯片架构笔记 2024年08月03日 22:32 上海 Overview PCIe架构定义了4种地址空间&#xff1a;配置…

SAP HCM 成本分配涉及的表

导读 成本分配:在HCM模块在SAP模块中&#xff0c;核心就是成分如何与财务无缝衔接&#xff0c;今天介绍的是关于成本中心在HR模块中涉及的几张表&#xff0c;对精细化管理有相应的帮助。涉及的信息类型有0014、0015、0267等 作者&#xff1a;vivi&#xff0c;来源&#xff1a;o…

Java模拟Mqtt客户端连接Mqtt Broker

Java模拟Mqtt客户端基本流程 引入Paho MQTT客户端库 <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse.paho.mqttv5.client</artifactId><version>1.2.5</version> </dependency>设置mqtt配置数据 …

Day13 用Excel表体验梯度下降法

Day13 用Excel表体验梯度下降法 用所学公式创建Excel表 用Excel表体验梯度下降法 详见本Day文章顶部附带资源里的Excel表《梯度下降法》&#xff0c;可以对照表里的单元格公式进行理解&#xff0c;还可以多尝试几次不同的学习率 η \eta η来感受&#xff0c;只需要更改学习率…