杂记 | 记录一次使用Docker安装gitlab-ce的过程(含配置交换内存)

文章目录

  • 01 准备工作
  • 02 (可选)配置交换内存
  • 03 编辑docker-compose.yml
  • 04 启动并修改配置
  • 05 nginx反向代理
  • 06 (可选)修改配置文件
  • 07 访问并登录


01 准备工作

最近想自建一个gitlab服务来保存自己的项目,于是找到gitlab-ce的方式。
开工前先梳理一下状况:

  • 具备一台云服务器(我用的腾讯云)
  • CentOS7的系统,已安装好了docekr和docker-compose(如果没装先自行装一下)
  • 服务器内存为4G(这个内存有点吃紧,先凑合用)
  • 服务不直接对外暴露,而是使用nginx做反向代理(实际使用nginx proxy manager来做,主打一个:省心)
  • 有一个自己的域名,方便访问,没有的话用ip也能访问(推荐还是用域名,配合HTTPS更舒心)

我的云服务器配置如下,建议不要低于我的配置:
在这里插入图片描述

02 (可选)配置交换内存

由于我的服务器内存只有4G,而腾讯云的服务器居然没有给我分配交换内存,于是我决定自己配置交换内存,相当于虚拟内存。
如果已经有交换内存,也可以通过配置来叠加扩大。
以下是Linux命令

# 先查看内存状况
free -h# 在根目录创建swap文件夹
mkdir /swap# 进入到swap目录
cd /swap# 创建一个4096M的交换内存(根据自己情况修改结尾的count属性)
dd if=/dev/zero of=swapfile bs=1MB count=4096# 设置并建立交换文件
mkswap ./swapfile# 赋予交换文件600权限(安全起见)
chmod 600 ./swapfile# 启用交换分区
swapon ./swapfile# 设置开机自动挂载
echo '/swap/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab# 重启服务器
reboot# 查看交换内存是否设置成功
free -h

03 编辑docker-compose.yml

接下来,在root目录下新建一个gitlab文件夹,在其中创建docker-compose.yml文件并编辑内容。

version: '3'
services:gitlab:image: 'gitlab/gitlab-ce:latest'restart: alwayshostname: '10.0.12.13'  # 因为我打算用nginx反向代理,这里填的宿主机的内网ipenvironment:  # 配置外部访问链接,这里不建议使用https,否则启动和访问都可能变慢,https在nginx那里去配置GITLAB_OMNIBUS_CONFIG: |external_url 'http://10.0.12.13'ports:- '83:80'# - '443:443'  # 因为docker中没使用https,这里注释了# - '22:22'  # 暂时用不到,也注释了,注意端口冲突的问题volumes:- './config:/etc/gitlab'- './logs:/var/log/gitlab'- './data:/var/opt/gitlab'

04 启动并修改配置

启动前先拉取镜像

# 在上一步创建的docker-compose.yml所在的目录执行
docker-compose pull# 拉取完成后使用命令启动容器
docker-compose up -d

启动需要花一些时间,我花了5分钟,先暂时不要访问。

05 nginx反向代理

为了安全起见,我做了nginx反向代理,实际是用的nginx proxy manager来完成的,nginx也可自行配置。
在这里插入图片描述

如果是使用nginx.conf配置如下:
(没有真实试过,仅供参考)

http {...server {listen 443 ssl http2;  # 使用443 开启httpsserver_name www.xxx.com;  # 改成访问的域名或iplocation / {proxy_pass http://127.0.0.1:83;  # 内网ip或127.0.0.1加容器外部端口}# 配置证书ssl_certificate /etc/ssl/certificates/www.xxx.com.pem;ssl_certificate_key /etc/ssl/certificates/www.xxx.com.key;}...
}

06 (可选)修改配置文件

我的gitlab启动后,内存占用维持在90%+,可以考虑修改配置文件,牺牲一部分功能来保证运转。
实测内存占用从93%下降到了83%,还算给力。

# 找到外部卷上对应的配置文件
cd ~/gitlab  # 这个文件夹是我存放docker-compose.yml的文件夹# 使用编辑器编辑配置文件
vim ./config/gitlab.rb# 将下面两项置为false 因为是个人使用 用不到这些功能
prometheus['enable'] = false  # Prometheus 监控
mattermost['enable'] = false  # Mattermost 聊天# tips 可能会用到的vim命令
/world  # 斜杠后跟要查找的词
n  # 跳转到下一个
N  # 跳转到上一个
yy  # 复制这一行
p  # 粘贴复制的内容
u  # 撤销一步操作
:noh  # 取消高亮显示
:wq  # 保存并退出# 接下来进入容器内部
docker exec -it <gitlab容器名或id> /bin/bash# 重载配置
gitlab-ctl reconfigure# 退出容器
exit

07 访问并登录

然后就是输入刚才配置的域名或ip进行访问。
首次访问可以注册账号,也可使用root账户登录。

# 获取root用户初始密码:
docker exec -it <gitlab容器名或id> grep 'Password:' /etc/gitlab/initial_root_password# 结果如下
Password: xxxxxxxxxxxxxxxxx

(页面下方可以设置成中文)
在这里插入图片描述


(完)

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

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

相关文章

PC端自动化工具pywinauto:如何选择应用程序的窗口?

如何选择需要打开的应用程序的窗口有2种方法&#xff1a; ①通过窗口标题/窗口类名来打开应用程序窗口&#xff0c;第一步就要打开窗口精灵&#xff0c;通过拖动放大镜到应用窗口找到窗口标题和窗口类名&#xff0c;如下图所示&#xff1a; 接下来就可以根据窗口类名和标题选择…

Unity 基础函数

Mathf&#xff1a; //1.π-PI print(Mathf.PI); //2.取绝对值-Abs print(Mathf.Abs(-10)); print(Mathf.Abs(-20)); print(Mathf.Abs(1)); //3.向上取整-Ce il To In t float f 1.3f; int i (int)f; …

TSINGSEE青犀视频汇聚平台EasyCVR视频广场面包屑侧边栏支持拖拽操作

TSINGSEE青犀视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等&#xff0c;以及厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等&#xff0c;能对外分发RTSP、RTMP、FLV、HLS、Web…

Mysql主从搭建 基于DOCKER

创建目录 #主节点目录 mkdir -p /home/data/master/mysql/#从节点目录 mkdir -p /home/data/slave/mysql/创建配置文件 # 主节点配置 touch /home/data/master/mysql/my.cnf# 从节点配置 touch /home/data/slave/mysql/my.cnf编辑配置文件 主节点配置文件 vim /home/data/m…

CLION编译后的exe文件添加ico图标

编译前准备 1.编译ico.rc>ico.o 将图标放到工程目录下 新建ico.rc文件 id ICON "spoon.ico" //添加图标 #include <winver.h> VS_VERSION_INFO VERSIONINFOFILEVERSION 1,0,0,10PRODUCTVERSION 1,0,0,10FILEFLAGSMASK 0x3fL #ifdef _DEBUGFILEFLAGS VS_FF…

js 使用 Object.defineProperty() 对属性进行限制 06

小夏小夏&#xff0c;可爱爆炸 &#x1f923; &#x1f495;&#x1f495;&#x1f495; 文章目录 前言一、对属性操作的控制二、属性描述符三、数据属性描述符四、存取属性描述符 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 例如&#xff1a;随着人…

查看gz文件 linux zcat file.gz mtx.gz

可以使用以下命令来查看 gz 压缩文件的内容&#xff1a; zcat file.gz 1 该命令会将 file.gz 文件解压并输出到标准输出&#xff0c;可以通过管道符将其与 grep 命令结合使用来查找需要的关键词&#xff0c;例如&#xff1a; zcat file.gz | grep keyword 1 该命令会将 file.gz…

Unity 打造游戏攻击技能架构与设计

一、技能系统的设计 在 MOBA 游戏中&#xff0c;每个英雄角色都会有多个技能&#xff0c;这些技能可以分为普通攻击和技能攻击两种。普通攻击是英雄角色的基本攻击方式&#xff0c;而技能攻击则需要消耗一定的资源&#xff08;如蓝量&#xff09;才能使用。在设计技能系统时&a…

在家构建您的迷你聊天Chat gpt

推荐&#xff1a;使用 NSDT场景编辑器 助你快速搭建可编辑的3D应用场景 什么是指令遵循模型&#xff1f; 语言模型是机器学习模型&#xff0c;可以根据句子的前一个单词预测单词概率。如果我们向模型请求下一个单词&#xff0c;并将其递减地反馈给模型以请求更多单词&#xff…

【80天学习完《深入理解计算机系统》】第三天 2.3 整数运算【正负溢出】【运算的溢出】【类型转换的二进制扩展】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

【12】Git工具 协同工作平台使用教程 【Gitee】【腾讯工蜂】

tips&#xff1a;少量的git安装和使用教程&#xff0c;更多讲快速使用上手Gitee和工蜂平台 一、准备工作 1、下载git Git - Downloads (git-scm.com) 找到对应操作系统&#xff0c;对应版本&#xff0c;对应的位数 下载后根据需求自己安装&#xff0c;然后用git --version验…

Python-OpenCV中的图像处理-图像阀值

Python-OpenCV中的图像处理-图像阀值 图像阈值单阈值自适应阈值Otsus二值化 图像阈值 单阈值 与名字一样&#xff0c;这种方法非常简单。但像素值高于阈值时&#xff0c;我们给这个像素赋予一个新值&#xff08;可能是白色&#xff09;&#xff0c;否则我们给它赋予另外一种颜…

学习Linux,要把握哪些重点?

不知道有没有想学习Linux&#xff0c;但又把握不住学习重点&#xff0c;找不到合适的学习方法的小伙伴&#xff0c;反正我刚开始学习Linux时就像无头苍蝇似的“乱撞”&#xff0c;没有把握住学习重点&#xff0c;不知道怎么去学&#xff0c;差点要放弃了&#xff0c;还好在慢慢…

金蝶云星空对接打通管易云分布式调入单查询接口与其他入库单新增完结接口接口

金蝶云星空对接打通管易云分布式调入单查询接口与其他入库单新增完结接口接口 源系统:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应…

Linux系统介绍

一、Linux系统和Windows系统的区别&#xff1a; 1.Linux主要使用命令行来操作系统&#xff0c;Windows是使用图形化界面来操作系统。 在Linux系统中可以通过在桌面鼠标右击选择在终端中打开然后通过终端来操作&#xff0c;也可以使用快捷键ctrlaltt进入终端&#xff1b;可以直…

RISC-V基础之函数调用(三)保留寄存器(包含实例)

RISC-V将寄存器分为保留和非保留两类。保留寄存器是指在函数调用前后必须保持相同值的寄存器&#xff0c;因为调用者期望在调用后能够继续使用这些寄存器的值。保留寄存器包括s0到s11&#xff08;因此称为saved&#xff09;&#xff0c;sp和ra。非保留寄存器&#xff0c;也称为…

湘大 XTU OJ 1223 Repeat One 题解:最后面进行取模转变成一边取模一边计算

一、链接 Repeat One 二、题目 题目描述 求由最小的一个N&#xff0c;N个数码1组成的数能被M整除&#xff1f; 比如M3时&#xff0c;111能被3整除。M2时&#xff0c;则不存在这样的N。 输入 第一行是一个整数K(K≤1,000),表示样例的个数。 以后每行一个整数M(1≤M≤1,000,000…

Canal+Kafka实现Mysql数据同步

Canal介绍 canal [kənl]&#xff0c;译意为水道/管道/沟渠&#xff0c;主要用途是基于 MySQL 数据库增量日志解析&#xff0c;提供增量数据订阅和消费 canal可以用来监控数据库数据的变化&#xff0c;从而获得新增数据&#xff0c;或者修改的数据。 canal是应阿里巴巴存在杭…

什么是Linux,如何在Windows操作系统下搭建Linux环境,远程连接Linux系统

文章目录 什么是LinuxLinux的诞生及发展为什么要学习LinuxLinux内核Linux发行版什么是虚拟机如何在VMware虚拟机中搭建Linux系统环境远程连接 Linux 系统Linux 帮助网站 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统&#xff0c;是一个基于POSIX和UNIX的多用户…

在rviz中实时显示车辆轨迹

在工作空间中创建包 cd ~/catkin_ws/src catkin_create_pkg trajectory_display_example roscpp nav_msgs sensor_msgs在src文件夹下创建一个C源文件 #include <ros/ros.h> #include <nav_msgs/Odometry.h> #include <nav_msgs/Path.h> #include <senso…