使用Docker在局域网安装GitLab

news2024/11/27 16:47:54

使用 Docker 安装 GitLab

1. 安装GitLab

最近想在本地创建一个GitLab仓库,简单记录一下:

  1. 简单设置一个GitLab信息的存储目录
export GITLAB_HOME=/etc/docker/gitlab/ && mkdir &GITLAB_HOME
  1. docker中启动
sudo docker run --detach \
  # 以下配置访问的地址,可以是:
  # IP+端口:通过「IP+端口」访问主页
  # 仅IP:通过「IP+80端口」访问
  # 域名:若是放在公网上(或内网穿透后)可以使用该ip进行访问
  --hostname 192.168.1.2 \
  --publish 443:443 --publish 80:80 --publish 23: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-ee:latest

IP的设置有很多方式,可以试着+三级域名来实现,比如DNS解析、frp内穿自带的三级域名功能等…

  1. 启动成功后,访问刚才设置的IP可以进入GitLab主页

需要注意的是,GitLab需要启动的东西很多,占用的资源比较多,所以一开始访问的时候可能是下面这样显示「502:We’re sorry. GitLab is taking too much time to respond.」字样,这只是GitLab还没完全启动完成,安心等待即可。

若是什么都访问不到,可以尝试使用:

docker ps -a
docker logs -f continer_name

来查看启动状态、查看日志等内容,其他操作自行尝试。

启动成功后再次登录,会进入一个登录界面,初始用户名是root,初始密码是一串很长的随机数,在Linux下执行下面的命令获取初始密码:

sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password

在这里插入图片描述
将改密码输入到Gitlab的登录密码框里,用户名写root,即可登陆成功。

在这里插入图片描述




2. 配置邮件服务

  1. 配置邮箱

发送通知邮件,邮件服务就是你注册成功或者有合并请求的时候会给你发送邮件,告诉你一些相关的信息。
可以不配置,非必须。

– 以QQ邮箱为例 –

## 进入目录并编辑配置文件
cd $GITLAB_HOME/config/
vim gitlab.rb 

## 在文件中插入或修改以下内容
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "QQ号@qq.com"
gitlab_rails['smtp_password'] = "QQ邮箱授权码"
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = "QQ号@qq.com"

「邮箱授权码」可以去QQ邮箱那里去申请,其他邮箱也是一样的,只不过不同的邮箱(如163、gmail)等需要修改smtp_domain、端口等信息。

  1. 重启Docker容器
docker restart gitlab




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

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

相关文章

C++:类和对象(上)---初步认识类和this指针

文章目录 面向过程和面向对象类的引入类的定义类定义的方式 类的访问限定符类的实例化类对象模型类对象的大小 this指针 面向过程和面向对象 C语言是一门面向过程的语言关注的是过程,确认一个问题求解的步骤,再一步一步对它进行解决 C是一门基于面向对…

【学会动态规划】最小路径和(9)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…

Kotlin 协程基础入门:Channel(通道)

简介 Kotlin 中的 Channel(通道)是一种协程间通信的机制,用于在协程之间传递数据。它提供了一种有序、线程安全的方式,让生产者和消费者之间进行异步数据传输。 Channel 这个管道的其中一端,是发送方;管道…

OpenCV实现照片换底色处理

目录 1.导言 2.引言 3.代码分析 4.优化改进 5.总结 1.导言 在图像处理领域,OpenCV是一款强大而广泛应用的开源库,能够提供丰富的图像处理和计算机视觉功能。本篇博客将介绍如何利用Qt 编辑器调用OpenCV库对照片进行换底色处理,实现更加…

Promise 讲解,js知识,es6

文章目录 一、Promise的三种状态1. 初始态pending2. 成功态fulfilled,调用resolve方法3. 失败态rejected,调用reject方法 二、Promise的方法then方法catch方法 三、async和awaitasync 函数await 表达式 四、代码举例帮助理解1、Promise的值通过then方法获…

【idea】编译热部署

项目场景: 实际工作中,用到了idea,发现idea不编译代码,热部署什么的都不行 问题描述 在实际的工作中idea遇到了各种问题,之前一直用的2022版的,公司用的jboss起的项目,启动过程极其痛苦&#…

电子档案管理系统

电子文档 登陆成功后点击左上角“”选择“档案管理”跳转到“档案管理首页”如下图: 该界面列出用户被授权查看的可视化数据图形,柱图、饼图、线图、雷达图等,并结合数据仓库里的动态数据进行数据展现。 图形所展示的数据可根据企业需求定制,点击图形即可查看关联内容,方…

C++类与对象(上部曲)

目录 面向过程和面向对象初步认识 类的引入 类的定义 类的两种定义方式: 1. 声明和定义全部放在类体中 2. 类声明放在.h文件中,成员函数定义放在.cpp文件中 类的访问限定符及封装 1 访问限定符 2 封装 类的实例化 类对象的存储方式 this指针 …

IDEA快速创建SpringBoot

文件具有错误的版本 61.0, 应为 52.0报错可以看看是不是Springboot的版本比较高 和jdk版本不匹配 package com.qf.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframewor…

黑马 pink h5+css3+移动端前端

网页概念 网页是网站的一页,网页有很多元素组成,包括视频图片文字视频链接等等,以.htm和.html后缀结尾,俗称html文件 HTML 超文本标记语言,描述网页语言,不是编程语言,是标记语言,有标签组成 超文本指的是不光文本,还有图片视频等等标签 常用浏览器 firefox google safari…

从Vue2到Vue3【四】——Composition API(第四章)

系列文章目录 内容链接从Vue2到Vue3【零】Vue3简介从Vue2到Vue3【一】Composition API(第一章)从Vue2到Vue3【二】Composition API(第二章)从Vue2到Vue3【三】Composition API(第三章)从Vue2到Vue3【四】C…

os.environ[“CUDA_VISIBLE_DEVICES“]学习总结

今天发现一个很有意思的东西 import torch import os # Specify the GPU device os.environ["CUDA_VISIBLE_DEVICES"] "1" print(torch.cuda.is_available())但是如果修改下面的设置后,结果就变成了 import torch import os # Specify the…

【100天精通python】Day7:数据结构_列表 List的创建、删除、访问、遍历、统计、排序、推导等使用

目录 1 列表的创建 2 列表的删除 3 访问列表元素 4 遍历列表 5 添加修改删除列表元素 6 对列表进行统计和计算 7 对列表进行排序 8 列表推导式 9 多维列表 在Python中,列表是一种有序的可变数据类型,用于存储一组元素。 列表使用方括号“[] ”来…

汇编习题1-100和

.text .globl _start_start:mov r0,#0MOV r1,#0stop:cmp r1,#0x64addcc r1,r1,#0x1addcc r0,r0,r1b stop .end运行结果: 寄存器R0就为16进制的结果

K8S初级入门系列之四-Namespace/ConfigMap/Secret

一、前言 本章节我们继续学习Namespace、ConfigMap、Secret基础概念,了解他们基本用法和操作。NameSpace为命名空间,在同一集群中试下资源隔离。ConfigMap通过key-value的方式实现明文配置数据的保存,Secret与ConfigMap类似,不过是…

Windows下使用rocketMq

1、下载(下载zip后解压即可) 下载地址:下载 | RocketMQ 2、配置环境变量(注意:该目录的下一级是bin) 3、启动 在bin目录下使用cmd 分别输入 3.1 启动name server (下图是启动成功的显示,窗口…

CPU密集型和IO密集型任务的权衡:如何找到最佳平衡点

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、CPU密集型与IO密集型3.1、CPU密集型3.2、I/O密…

dp算法 力扣978、力扣139、力扣467

目录 一、力扣978978. 最长湍流子数组 - 力扣(LeetCode) (一)题目详情 (二)算法讲解 (三)代码 二、力扣139139. 单词拆分 - 力扣(LeetCode) &#xff0…

计网学习笔记 wireless mobile networks

无线局域网的组成 无线网络在近些年来一直是个非常流行的东西。现在的移动用户数量已经大大超过了有线用户数量,比例大于5:1。 实现无线网络的挑战性 从有线到无线是网络构建上一个伟大的设想,挑战性主要集中在wireless和mobility两个点上。 这两个是…

Express 框架的基本操作

目录 1、应用生成器 2、基本路由 2.1、在跟路由下配置 GET请求,返回对应相应内容。 2.2、在跟路由下配置 POST请求,返回对应相应内容。 2.3、在跟路由下配置 PUT请求,返回对应相应内容。 2.4、在根路由下配置DELETE请求,返回对…