当前位置: 首页 > news >正文

【Git】Windows下通过Docker安装GitLab

私有仓库

  • 前言
  • 基本思路
  • 拉取镜像
  • 创建挂载目录
  • 创建容器
  • 容器启动成功
  • 登录仓库
  • 设置中文
  • 更改密码
  • 人员审核
  • 配置邮箱
  • 参考文献

前言

由于某云存在人数限制,这个其实很好理解,毕竟使用的是云服务器,人家也是要交钱的。把代码完全放在别人的服务器上面,也怕数据泄漏之类的,因此为了解决这些问题故而选择使用GitLab来搭建私服仓库。

基本思路

在 Windows 上面使用 Docker 安装 GitLab 仓库,然后将仓库的数据挂载到本地。

拉取镜像

docker search gitlab/gitlab-ce
docker pull gitlab/gitlab-ce

创建挂载目录

D:\docker\gitlab\config
D:\docker\gitlab\log
D:\docker\gitlab\data

创建容器

docker run -d --hostname localhost -p 1000:80 -p 443:443 --name gitlab --restart unless-stopped -v D:\docker\gitlab\config:/etc/gitlab -v D:\docker\gitlab\log:/var/log/gitlab -v D:\docker\gitlab\data:/var/data/gitlab gitlab/gitlab-ce:latest

-d:后台运行容器。
--hostname localhost:设置容器的主机名为 localhost。
-p 1000:80:将宿主机的 1000 端口映射到容器的 80 端口。
-p 443:443:将宿主机的 443 端口映射到容器的 443 端口。
--name gitlab:给容器命名为 gitlab。
--restart unless-stopped:容器在退出时除非明确停止,否则将自动重启。
-v D:\docker\gitlab\config:/etc/gitlab:将宿主机的 D:\docker\gitlab\config 目录挂载到容器的 /etc/gitlab 目录,用于存储 GitLab 的配置文件。
-v D:\docker\gitlab\log:/var/log/gitlab:将宿主机的 D:\docker\gitlab\log 目录挂载到容器的 /var/log/gitlab 目录,用于存储 GitLab 的日志文件。
-v D:\docker\gitlab\data:/var/data/gitlab:将宿主机的D:\docker\gitlab\data 目录挂载到容器的 /var/data/gitlab 目录,用于存储 GitLab 的数据文件。
gitlab/gitlab-ce:latest:指定要运行的 Docker 镜像,即 GitLab 社区版的最新版本。

容器启动成功

在这里插入图片描述

登录仓库

查看挂载的配置目录下 initial_root_password 文件里面的初始密码,默认用户为 root
在这里插入图片描述
用记事本打开该文件,查看其密码:
在这里插入图片描述

设置中文

在这里插入图片描述

更改密码

在这里插入图片描述

人员审核

在这里插入图片描述

配置邮箱

在配置目录下找到 gitlab.rb 文件配置邮箱
D:\docker\gitlab\config\gitlab.rb

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.ym.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "xxxxx@xxx.com"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "smtp.ym.163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = false
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_pool'] = true

重新运行配置:sudo gitlab-ctl reconfigure
在这里插入图片描述
上面图片犯了一个错误,那就是同时设置了 smtp_tlssmtp_enable_starttls_auto 为 true,这样会导致容器重启会陷入死循环里面,一直重启一直报错的处境,解决这个方法就是只能开启其中一个,两者配置是分别用于不同的 SMTP 安全传输方式中,这里我们使用的是 SMTP 的纯 TLS 模式(也称为 SMTPS)连接到邮件服务器,其默认端口为 465,因此将 smtp_tls 开启即可正常运行。
在这里插入图片描述

报错截图
从截图里面,通过 `gitlab_rails['smtp_tls'] and gitlab_rails['smtp_enable_starttls_auto'] are mutually exclusive.` 也可以知道其之间存在冲突。

测试邮箱服务器是否配置成功,首先进入容器的控制台里面,执行 gitlab-rails console,进入 rails 控制台,执行发送邮件的命令 Notify.test_email('youremail@email.com', 'Hello World', 'This is a test message').deliver_now
在这里插入图片描述

参考文献

  1. SMTP settings | GitLab:https://docs.gitlab.com/omnibus/settings/smtp.html

相关文章:

  • 【PyQt】08 - 编辑Tab顺序
  • springboot集成Sa-Token及Redis的redisson客户端
  • 计算机二级数据库之数据模型(三层相关的结构)
  • 【国产MCU】-CH32V307-触摸按键检测(TKEY)
  • 揭秘 2024 春晚刘谦魔术——代码还原
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • 使用Express 构建高效的Web应用程序
  • STM32控制JQ8400语音播报模块
  • NSSCTF Round18 Crypto年画复现
  • 【lesson53】线程控制
  • Android14之Android Rust模块编译语法(一百八十七)
  • 内网穿透 | 推荐两个免费的内网穿透工具
  • 【深度学习】S2 数学基础 P4 微积分(下)偏导数与链式法则
  • flask+python儿童福利院管理系统pycharm毕业设计项目
  • 【python】网络爬虫与信息提取--Beautiful Soup库
  • Cookie 在前端中的实践
  • js 实现textarea输入字数提示
  • Laravel核心解读--Facades
  • LeetCode算法系列_0891_子序列宽度之和
  • mysql innodb 索引使用指南
  • React Native移动开发实战-3-实现页面间的数据传递
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vue的全局变量和全局拦截请求器
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • zookeeper系列(七)实战分布式命名服务
  • 构造函数(constructor)与原型链(prototype)关系
  • 聊聊redis的数据结构的应用
  • 一个完整Java Web项目背后的密码
  • 再谈express与koa的对比
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • 带你开发类似Pokemon Go的AR游戏
  • #DBA杂记1
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #include到底该写在哪
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (太强大了) - Linux 性能监控、测试、优化工具
  • .net mvc部分视图
  • .NET 设计一套高性能的弱事件机制
  • .net(C#)中String.Format如何使用
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET连接MongoDB数据库实例教程
  • .net流程开发平台的一些难点(1)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • /bin/rm: 参数列表过长"的解决办法
  • /dev下添加设备节点的方法步骤(通过device_create)
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [] 与 [[]], -gt 与 > 的比较