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.rhkb.cn/news/318445.html

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

相关文章

【C语言实现贪吃蛇】(内含源码)

前言:首先在实现贪吃蛇小游戏之前,我们要先了解Win32 API的有关知识 1.Win32 API Windows这个多作业系统除了协调应用程序的执行、分配内存、管理资源之外,它同时也是一个很大的服务中心,调佣这个中心的各种服务(每一…

设置cordova编译时采用本地已下载的gralde

设置cordova编译时采用本地已下载的gralde 前言 编译Cordova时,往往会根据cordova工程的需要从网络上下载不同版本的gradle用于编译,每次下载带来编译速度慢,甚至因为网络不稳定,导致提示因无法下载gradle而编译失败!…

【如何使用SSH密钥验证提升服务器安全性及操作效率】(优雅的连接到自己的linux服务器)

文章目录 一、理论基础(不喜欢这部分的可直接看具体操作)1.为什么要看本文(为了zhuangbility)2.为什么要用密钥验证(更安全不易被攻破)3.密码验证与密钥验证的区别 二、具体操作1.生成密钥对1.1抉择&#x…

挑战一周完成Vue3项目Day4: 用户管理+角色管理+菜单管理+首页+暗黑模式/主题切换

一、用户管理 1.静态搭建 src/views/acl/user/index.vue <template><el-card style"height:80px;"><el-form :inline"true" class"form"><el-form-item label"用户名&#xff1a;"><el-input placehold…

LT2611UX四端口 LVDS转 HDMI2.0,带音频

描述LT2611UX 是一款面向机顶盒、DVD 应用的高性能 LVDS 至 HDMI2.0 转换器。LVDS输入可配置为单端口、双端口或四端口&#xff0c;具有1个高速时钟通道和3~4个高速数据通道&#xff0c;工作速率最高为1.2Gbps/通道&#xff0c;可支持高达19.2Gbps的总带宽。LT2611UX 支持灵活的…

设计模式之MVC模式

在编程江湖闯荡多年&#xff0c;我手中打磨过的设计模式多如繁星&#xff0c;但论及经典与实用&#xff0c; MVC&#xff08;Model-View-Controller&#xff09;模式 绝对是个中翘楚&#xff01;它不仅是Web应用的骨架&#xff0c;更是软件架构的智慧结晶。今天&#xff0c;咱们…

tomcat篇-windows 运行tomcat的startup.bat时,终端打印的中文显示为乱码

当运行Tomcat的startup.bat时&#xff0c;如果终端中中文显示为乱码&#xff0c;这通常是因为Tomcat使用的日志输出编码与Windows命令行默认的编码不匹配。针对这一问题&#xff0c;你可以尝试以下步骤来解决&#xff1a; 1、执行startup.bat&#xff0c;在输出的窗口右击&…

从Paint 3D入门glTF

Paint 3D Microsoft Paint 3D是微软的一款图像编辑软件&#xff0c;它是传统的Microsoft Paint程序的升级版。 这个新版本的Paint专注于三维设计和创作&#xff0c;使用户可以使用简单的工具创建和编辑三维模型。 Microsoft Paint 3D具有直观的界面和易于使用的工具&#xff0…

笔记-用Python脚本启停JAR程序

用Python脚本启停JAR程序&#xff0c;需要用到python中的以下内置模块 subprocess 是 Python 的一个标准库模块&#xff0c;用于在新进程中执行子命令&#xff0c;获取子进程的输入/输出/错误以及返回码等os 是 Python 的一个标准库模块&#xff0c;它提供了与操作系统交互的功…

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习

ICode国际青少年编程竞赛- Python-1级训练场-for循环练习 1、 for i in range(3):Dev.step(4)Dev.turnLeft()2、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()3、 for i in range(3):Dev.step(2)Dev.turnRight()Dev.step(2)Dev.turnLeft()4、 for…

ubuntu与redhat的不同之处

华子目录 什么是ubuntu概述 ubuntu版本简介桌面版服务器版 安装部署部署后的设置设置root密码关闭防火墙启用允许root进行ssh登录更改apt源安装所需软件 网络配置Netplan概述配置详解配置文件DHCP静态IP设置设置 软件安装方法apt安装软件作用常用命令配置apt源 deb软件包安装概…

C语言中的三大循环

C语言中为我们提供了三种循环语句&#xff0c;今天我就来与诸君细谈其中之奥妙。循环这一板块总结的内容较多&#xff0c;而且&#xff0c;很重要&#xff01;&#xff08;敲黑板&#xff01;&#xff01;&#xff01;)&#xff0c;所以诸君一定要对此上心&#xff0c;耐住性子…

golang反射

go反射 反射基本介绍应用场景基本使用结构体注意练习最佳实践遍历结构体的方法&#xff0c;调用接头体的方法&#xff0c;获取结构体的标签 反射 基本介绍 反射可以在运行时动态获取变量的各种信息&#xff0c;比如变量的类型(type)、类别(kind)如果是结构体变量&#xff0c;…

设计模式: 工厂模式

工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 工厂模式属于创建型…

【Web】D^3CTF之浅聊d3pythonhttp——TE-CL请求走私

目录 step0 题目信息 step1 jwt空密钥伪造 step1.5 有关TE&CL的lab step2 TE-CL请求走私 payload1 payload2 step0 题目信息 注意到题目源码前端是flask写的&#xff0c;后端是web.py写的 frontend from flask import Flask, request, redirect, render_templat…

万界星空科技商业开源MES+项目合作+商业开源低代码平台

今天我想和大家分享的是一套商业开源的 MES制造执行管理系统带源码。对于制造业而言&#xff0c;MES 是一个至关重要的系统&#xff0c;它可以帮助企业提高生产效率、优化资源利用、提高产品质量&#xff0c;从而增强市场竞争力。 什么是 MES&#xff1f; MES 是指通过计算机技…

安装部署大语言模型 | 通义千问

下载安装 进入ollama的仓库下载 「 qwen 7b 」 libraryGet up and running with large language models.https://ollama.com/library查找阿里的 「 qwen 」 根据自己的电脑配置情况&#xff0c;选择合适的模型 总体来说&#xff0c;模型是越大&#xff0c;效果越好&#xff0c…

数据库(MySQL)基础:约束

一、概述 1.概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 2.目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 3.分类 约束描述关键字非空约束限制该字段的数据不能为nullnot null唯一约束保证该字段的所有数据都是唯一…

JSP在页面用<%=调用声明函数时出现HTTP 500错误

JSP在页面用<%调用声明函数时出现HTTP 500错误 错误描述&#xff1a; Eclipse在编写JSP页面时&#xff0c;在其中采用<%&#xff01;%>方式声明了函数&#xff0c;然后在页面中用<%函数名%>方式调用时&#xff0c;出现HTTP状态500错误&#xff0c;提示为&#…

PC通过串口发送指令控制LED+串口中断

如何让单片机接收数据&#xff1f; 首先要打开SCON中的串行接收控制位REN。当REN1时为允许接收状态&#xff0c;可以接收信息。 因此令SCON 0x50&#xff1b; 怎么知道收到数据&#xff1f; 利用RI接收中断请求标志位。当串行接收到第8位结束时由内部硬件自动置为RI1&#…