2024最新docker部署gitlab

docker部署gitlab

快速命令

1 拉取镜像

docker pull gitlab/gitlab-ce

2 启动容器

docker run -itd  \-p 9980:80 \-p 9922:22 \-v /opt/soft/docker/gitlab/etc:/etc/gitlab  \-v /opt/soft/docker/gitlab/log:/var/log/gitlab \-v /opt/soft/docker/gitlab/opt:/var/opt/gitlab \--restart always \--privileged=true \--name gitlab \gitlab/gitlab-ce

/opt/soft/docker/gitlab/opt 是宿主机 也就是外面的机器。

这个会自动创建

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

3 修改配置文件并配置邮箱

注意:这里是把4.3放到4.2后面配置,然后再操作4.4。原因是希望在4.4中统一修改端口,如果4.3和4.2分开配置,会容易遗漏修改4.4中的端口,从而在clone项目时,导致链接中没有端口的bug。

4、配置环境

4.1 开放linux端口

先开放gitlab使用的linux端口。

1.开放服务器端口
firewall-cmd --zone=public --add-port=9980/tcp --permanentfirewall-cmd --zone=public --add-port=9922/tcp --permanent

云服务器 需要放开9980 9922

2. 重启防火墙
firewall-cmd --reload
3.查询有哪些端口是开启的
firewall-cmd --list-port

4.2 设置IP、端口

以下操作均在容器中执行

进入容器

docker exec -it gitlab /bin/bash

修改配置文件

vi /etc/gitlab/gitlab.rb

在开头加入以下内容:

公网ip: 你的ip

111.231.74.191

**注意:**external_url 的地址后面不能加端口,否则即使部署成功也无法访问。

#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://111.231.74.191'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '111.231.74.191'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
#时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#开启备份功能
gitlab_rails['manage_backup_path'] = true
#备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
#保存备份 60 天
gitlab_rails['backup_keep_time'] = 5184000

4.3 配置邮箱

邮箱是企业进行工作中的通知,交互必不可少的部分,gitlab同样支持邮箱的配置,方便对一些操作有邮件的提醒。

开启smtp功能

注意事项:一定要搞清楚邮件服务的端口到底是哪个,不然配置完后测试邮件发送会提示链接超时,也可以在docker部署的gitlab容器内

telnet IP 端口 来判断邮箱的地址和端口是否正确,如果正确则不报错,后面也会给出具体的配置。

QQ邮箱SMTP 服务器地址及端口:

img

163邮箱SMTP 服务器地址及端口

img

进入gitlab容器内部修改配置

docker exec -it gitlab /bin/bash

建议先在器内 telnet IP 端口 来确定邮件的SMTP服务能否链接上。

修改配置文件

vi /etc/gitlab/gitlab.rb

QQ邮箱:【注意端口】推荐,因为163邮箱可能会出现telnet端口不通的问题。

经测试,QQ的英文邮箱和数字邮箱可以共用同一个授权码。

gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = 'smtp.qq.com'gitlab_rails['smtp_port'] = 587gitlab_rails['smtp_user_name'] = '发件邮箱'gitlab_rails['smtp_password'] = '第三方登录授权码'gitlab_rails['smtp_domain'] = 'smtp.qq.com'gitlab_rails['smtp_authentication'] = 'login'gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = falsegitlab_rails['smtp_pool'] = '发件邮箱'gitlab_rails['gitlab_email_enabled'] = truegitlab_rails['gitlab_email_from'] = '发件邮箱'# gitlab_rails['gitlab_email_display_name'] = 'Example'

163邮箱:【注意端口】

gitlab_rails['smtp_enable'] = truegitlab_rails['smtp_address'] = 'smtp.163.com'gitlab_rails['smtp_port'] = 25gitlab_rails['smtp_user_name'] = '发件邮箱'gitlab_rails['smtp_password'] = '第三方登录授权码'gitlab_rails['smtp_domain'] = 'smtp.163.com'gitlab_rails['smtp_authentication'] = 'login'gitlab_rails['smtp_enable_starttls_auto'] = truegitlab_rails['smtp_tls'] = falsegitlab_rails['smtp_pool'] = '发件邮箱'gitlab_rails['gitlab_email_enabled'] = truegitlab_rails['gitlab_email_from'] = '发件邮箱'# gitlab_rails['gitlab_email_display_name'] = 'Example'

以上两个厂商的邮箱配置已验证,可用。

5、gitlab.rc统一配置

673170360@qq.com

‘gitlab的密码’

输入命令:telnet smtp.qq.com 587220 newxmesmtplogicsvrszb9-0.qq.com XMail Esmtp QQ Mail Server.
111.231.74.191 是我的公网ip 要换成你的#gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://111.231.74.191'
#ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '111.231.74.191'
#ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
#时区
gitlab_rails['time_zone'] = 'Asia/Shanghai'
#开启备份功能
gitlab_rails['manage_backup_path'] = true
#备份文件的权限
gitlab_rails['backup_archive_permissions'] = 0644
#保存备份 60 天
gitlab_rails['backup_keep_time'] = 5184000gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = 'smtp.qq.com'
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = '你的邮箱(需要修改)'
gitlab_rails['smtp_password'] = '你的邮箱授权(需要修改)'
gitlab_rails['smtp_domain'] = 'smtp.qq.com'
gitlab_rails['smtp_authentication'] = 'login'
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false
gitlab_rails['smtp_pool'] = 你的邮箱(需要修改)'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '你的邮箱(需要修改)'
# gitlab_rails['gitlab_email_display_name'] = '君临'

5.1 让配置生效

在4.2、4.3都配置完毕后再执行4.4的步骤。

让配置生效

gitlab-ctl reconfigure

输入命令后,会执行一系列操作,直到最后出现:gitlab Reconfigured!

修改gitlab.yaml 文件

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

默认为80端口,修改端口号为之前配置的端口

img

重启gitlab服务

gitlab-ctl restart

测试执行gitlab-rails console进入控制台交互界面,然后在控制台提示符后输入下面内容发送一封测试邮件,测试完成后exit()退出。

gitlab-rails console

# 示例

Notify.test_email('你的邮箱地址', 'GitLab email', 'Hello world').deliver_now

img

img

退出容器

exit;

6、管理员登录Gitlab

查找管理员(root)的密码,进入容器

docker exec -it gitlab /bin/bash

查看初始密码

cat /etc/gitlab/initial_root_password

你的密码*

img

登录

111.231.74.191:9980

root***你的密码****

账号:root

密码:【上一步查看的密码】

修改超级管理员的密码

7、关闭用户自动注册功能

tips:自己记录一下。不用管

http://111.231.74.191:9980/projects/new#blank_project

111.231.74.191

参考
http://t.csdnimg.cn/9YTZz

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

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

相关文章

Vite proxy-rewrite 属性详解

在前端开发中,为了避免跨域问题,我们会在vite.config.ts 中配置如下问题 rewrite: 由于不了解Nginx的知识,这个属性一直困扰着我,这个重写有啥用,加和不加有啥影响 server: {host: 0.0.0.0,proxy: {/api: {target: ht…

操作系统安全:安全审计,Windows系统日志详解,Windows事件ID汇总

「作者简介」:2022年北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖系统安全、信息收集等…

从零开始安装 stable diffusion webui v1.9.3 (windows10)

从零开始安装 stable diffusion webui v1.9.3 (windows10) CUDA 安装 CUDA 12.1 | https://developer.nvidia.com/cuda-toolkit-archive CUDNN 8.x | https://developer.nvidia.com/rdp/cudnn-archive 安装路径 F:/CUDA/v12.1 安装git git官网 | https://git-scm.com/ 安…

数据结构-二叉搜索树(BST)

目录 什么是二叉搜索树 二叉搜索树的特性 (1)顺序性 (2)局限性 二叉搜索树的应用 二叉搜索树的操作 (1)查找节点 (2)插入节点 (3)删除节点 (4)中序遍历 什么是二叉搜索树 如图所示,二叉搜索树(binary search tree)满足以下条件。…

【EI会议|稳定检索】2024年航空航天、空气动力学与自动化工程国际会议(ICAAAE 2024)

2024 International Conference on Aerospace, Aerodynamics, and Automation Engineering 一、大会信息 会议名称:2024年航空航天、空气动力学与自动化工程国际会议 会议简称:ICAAAE 2024 收录检索:提交Ei Compendex,CPCI,CNKI,Google Schol…

WebGL开发框架比较

WebGL开发框架提供了一套丰富的工具和API,使得在Web浏览器中创建和操作3D图形变得更加容易。以下是一些流行的WebGL开发框架及其各自的优缺点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.Three.js 优点&#xff1a…

装饰器模式、代理模式、适配器模式对比

装饰器模式、代理模式和适配器模式都是结构型设计模式,它们的主要目标都是将将类或对象按某种布局组成更大的结构,使得程序结构更加清晰。这里将装饰器模式、代理模式和适配器模式进行比较,主要是因为三个设计模式的类图结构相似度较高、且功…

VitePress 构建的博客如何部署到 github 平台?

VitePress 构建的博客如何部署到 github 平台? 1. 新建 github 项目 2. 构建 VitePress 项目 2.1. 设置 config 中的 base 由于我们的项目名称为 vite-press-demo,所以我们把 base 设置为 /vite-press-demo/,需注意前后 / export default…

Docker容器:搭建LNMP架构

目录 前言 1、任务要求 2、Nginx 镜像创建 2.1 建立工作目录并上传相关安装包 2.2 编写 Nginx Dockerfile 脚本 2.3 准备 nginx.conf 配置文件 2.4 生成镜像 2.5 创建 Nginx 镜像的容器 2.6 验证nginx 3、Mysql 镜像创建 3.1 建立工作目录并上传相关安装包 3.2 编写…

java案例-读取xml文件

需求 导入依赖 <dependencies><!-- dom4j --><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency> </dependencies>代码 SAXReader saxReade…

进迭时空宣布开源RISC-V芯片的AI核心技术

仟江水商业电讯&#xff08;4月29日 北京 委托发布&#xff09;4月29日&#xff0c;在“创芯生生不息——进迭时空2024年度产品发布会”上&#xff0c;进迭时空CEO、创始人&#xff0c;陈志坚博士宣布将开源进迭时空在自研RISC-V AI CPU上的核心技术&#xff0c;包括AI扩展指令…

无人机+集群组网+单兵图传:空地一体化组网技术详解

空地一体化组网技术是一种结合了无人机、集群自组网和单兵图传等多种技术的先进通信解决方案。这种技术方案的主要目的是在前线事故现场和后方指挥中心之间建立一个高效、稳定的通信链路&#xff0c;以确保信息的实时传输和指挥的顺畅进行。 首先&#xff0c;前端视频采集部分&…

自适应信号处理基础及应用——DSP学习笔记五

本专栏的图片内容都来自于老师讲课的PPT&#xff0c;本篇博客只是我个人对于上课内容的知识结构分析和梳理。 导论 自适应系统的定义、特征、形式、举例 特征 非自适应系统 • 固定参数的设计方法 • 假定事先知道了一切可能的输入条件&#xff1b;在这些条件下怎样动作&#…

word 表格 文字 上下居中

问题 word 表格 文字 上下居中 详细问题 笔者进行word 文档编辑&#xff0c;对于表格中的文本内容&#xff0c;如何进行上下居中&#xff1f; 解决方案 步骤1、选中需要进行操作的单元格 步骤2、右键 → \rightarrow →点击表格属性 步骤3、依次点击单元格 → \rightar…

Qt绘图与图形视图之自定义图元实现拖拽、拉伸、旋转功能

往期回顾 Qt绘图与图形视图之移动鼠标手动绘制任意多边形的简单介绍-CSDN博客 Qt绘图与图形视图之场景、视图架构的简单介绍-CSDN博客 Qt绘图与图形视图之基本图元绘制的简单介绍-CSDN博客 Qt绘图与图形视图之自定义图元实现拖拽、拉伸、旋转功能 一、最终效果 实现对自定义图…

应用层协议了解

一 HTTP前置知识 这篇博客会有点长&#xff0c;但对我来说非常有意义&#xff0c;这是我从一无所知到理解网络的重大突破&#xff0c;在前两个月我对网络非常恐惧&#xff0c;还十分不理解什么是网络&#xff0c;什么是协议。接下来先介绍几个概念。 1 流量 我们把数据给别人&…

GitHub Desktop进行汉化

第一步下载github桌面版 官网&#xff1a;安装 GitHub Desktop - GitHub 文档 历史版本&#xff1a;https://github.cn.uptodown.com/windows/versions 本期下载版本3.3.11进行汉化&#xff0c;最新版不一定稳定。 网站打不开的可自取&#xff1a; 3.3.11版本安装包链接&a…

【论文笔记】Language Models are Few-Shot Learners B部分

Language Models are Few-Shot Learners B 部分 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意力机制、残差、Layernorm&#…

排序算法:插入、希尔、选择、推排、冒泡、快速、归并排序

排序算法 目录 前言 一、排序的概念 1.1排序的概念 1.2 常见的排序算法 二、常见排序算法的实现 2.1 插入排序 2.2 希尔排序 2.3 选择排序 2.4 堆排序 2.5 冒泡排序 2.6 快速排序 2.6.1 hoare版本 2.6.2 前后指针版本 2.6.3 非递归版本 2.7 归并排序 归并排序 2.8 计数排序 三、…

【mysql】mysql中的数据类型知多少?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…