docker方式安装gitlab

news2024/10/6 1:47:24

一:docker 方式安装gitlab

用docker来安装比较方便简单,包括版本升级也会变得更简单。

1、拉取gitlab镜像
gitlab-ce表示的是社区免费版本

docker pull gitlab/gitlab-ce:latest

2、创建映射文件

mkdir -p /data/docker/gitlab/etc
mkdir -p /data/docker/gitlab/log
mkdir -p /data/docker/gitlab/data

etc映射保存配置文件,log 存储日志,data存储数据文件

3、运行gitlab容器

docker run \
    --detach \
    --privileged=true \
    --hostname 125.74.48.123 \
    --publish 443:443 --publish 8080:8080 --publish 5000:22 \
    --name mygitlab \
    --restart unless-stopped \
    --volume /data/docker/gitlab/etc:/etc/gitlab \
    --volume /data/docker/gitlab/log:/var/log/gitlab \
    --volume /data/docker/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:latest
  • hostname : 安装服务的ip
  • publish 443:443 https的端口,左边是宿主机对外端口,右边是容器内端口
  • publish 8080:8080 http访问的端口。左边是宿主机对外端口,右边是容器内端口
  • publish 5000:22 ssh方式下载对应的端口,左边是宿主机对外端口,右边是容器内端口
    注意,要用http方式连接,publish 8080:8080 前后两个端口需要一样。

容器启动后,还需要做配置调整

二、gitlab相关配置

1、配置容器中/etc/gitlab/gitlab.rb的配置文件

因为我们已经把容器的/etc目录映射到了本机的/data/docker/gitlab/etc 这个目录,我们打开
/data/docker/gitlab/etc//gitlab/gitlab.rb 这个文件就可以修改
修改的内容如下:

external_url 'http://125.74.48.123'
#ssh连接的端口
gitlab_rails['gitlab_shell_ssh_port'] = 5000
#http 访问的端口
nginx['listen_port'] = 5007
#备份文件保留的时长,单位是秒
gitlab_rails['backup_keep_time'] = 604800

修改配置后重启容器

访问http://125.74.48.123:8080/users/sign_in 就可以打开页面了
初始账户: root 密码:5iveL!fe,进入就会让你修改密码
在这里插入图片描述

2、/var/opt/gitlab/gitlab-rails/etc/gitlab.yml 文件配置

当时我已经创建了项目,在项目详情页复制了项目地址,一直下载不下来,发现详情页显示的没有带端口号,实际克隆的时候需要端口号的,如:http://125.74.48.123:8080/root/test_project.git .
这个是要我们要/var/opt/gitlab/gitlab-rails/etc/gitlab.yml的端口
首先进入容器:

docker exec -it gitlab的容器id /bin/bash
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

将文件中的port改成8080

host: localhost
port: 8080
https: false

在容器中执行:

gitlab-ctl restart

注意这里的命令是restart不是 reconfigure(根据配置文件/etc/gitlab/gitlab.rb 重新生成配置) ,否则还会恢复原来的配置。只要执行了gitlab-ctl reconfigure,gitlab.yml中的端口配置就会被还原。
所以如果你重启了容器之后,那这里的端口就又需要改一遍。
重启后退出容器
●先按,ctrl+p
●再按,ctrl+q

三、做定时备份

docker方式安装的执行备份的命令:

docker exec mygitlab gitlab-backup create     #mygitlab是容器名称

添加定时任务:
crontab -e 在文本中添加下面内容:

0 23 1 * *  docker exec mygitlab gitlab-backup create

比如我这个是每个月1号的23点开始备份,这个多久备份一次根据自己的需求来设置。

四、还原备份

1、进入到备份目录:/data/docker/gitlab/data/backups
备份发文如下:
在这里插入图片描述
执行备份命令:

gitlab-rake gitlab:backup:restore BACKUP=1685631631_2023_06_01_14.10.4

注意这里不要带_gitlab_backup.tar后缀,还原的时候版本需要是一致的

五、版本升级

版本升级是有路线的,要按照对应的版本升级,查看网站 https://docs.gitlab.com/ee/update/#upgrade-paths
在这里插入图片描述
下载到对应的版本镜像,比如我现在的是14.0.12 我要升级到14.3.6
1、下载14.3.6的镜像

docker pull gitlab/gitlab-ce:14.3.6-ce.0

2、将现在的运行的容器停止

docker stop  gitlab的容器id

3、删除现在的容器

docker rm gitlab的容器id

4、重新运行14.3.6镜像的容器

docker run \
    --detach \
    --privileged=true \
    --hostname 125.74.48.123 \
    --publish 443:443 --publish 8080:8080 --publish 5000:22 \
    --name mygitlab \
    --restart unless-stopped \
    --volume /data/docker/gitlab/etc:/etc/gitlab \
    --volume /data/docker/gitlab/log:/var/log/gitlab \
    --volume /data/docker/gitlab/data:/var/opt/gitlab \
    gitlab/gitlab-ce:14.3.6-ce.0

5、容器启动后验证登录是否正常。

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

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

相关文章

虚拟现实(VR)在医疗保健中的5种应用

医疗保健中的VR虚拟现实 虚拟现实的由来已久,18世纪,法国的医生使用布制的分娩模拟器向助产师和外科医生教授医学技术。在20世纪60年代初,医生一边对心肺复苏学员口述心肺复苏的技巧,一边使用一家塑料玩具厂家制造的塑料娃娃现场…

前端开发工程师的自我修养:前端开发工程师必须掌握的 Promise(详解)以及在 Vue3 项目中的实战应用

文章目录 📋前言🎯关于 promise(用于使用 JavaScript 编写的 Windows 应用商店应用)的内容分享🧩promise 究竟是什么?承诺关系 🎯JavaScript Promise🧩认识了解 Promise &#x1f3a…

RK3568平台开发系列讲解(外设篇)HX711调试

🚀返回专栏总目录 文章目录 一、HX711 工作原理二、硬件连接三、驱动四、修改设备树五、测试沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将讲解 HX711 模块调试。 一、HX711 工作原理 该部分由应变片与 HX711 模数转换器组成。应变片上的压力变化引起应…

线程基础、线程之间的共享和协作(初篇)

什么是进程和线程? 进程是操作系统进行资源分配的最小单位。资源包括cpu,内存空间,磁盘io等。同一进程里的多个线程共享该进程的全部系统资源。而进程与进程之间是相互独立的。 线程是cpu调度的最小单位,必须依托于进程而存在。…

高斯金字塔的秘密,尺度空间证明的思考

在构建图像尺度空间的过程中,唯一使用的核函数是高斯核,这一点被T Lindeber在文献《Scale-space theory: a basic tool for analyzing structures at different scales》中证明,高斯核是唯一可以产生多尺度空间的核。 相信大家在使用高斯金字…

Linux多线程与fork()函数

4.1多线程中使用进程复制 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<unistd.h> #include<pthread.h> void* fun(void* arg) {for(int i0;i<5;i){printf("fun run pid%d\n",getpid());sleep(1);} } int m…

基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统(可修改为coco 80类目标检测)

●项目名称 基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统&#xff08;可修改为coco 80类目标检测&#xff09; ●项目简介 本项目在Aidlux上部署鸟类检测驱赶系统&#xff0c;通过视觉技术检测到有鸟类时&#xff0c;会进行提示。并可在源码上修改coco 80类目标检测索引直…

554、Vue 3 学习笔记 -【常用Composition API(二)】 2023.06.30

目录 一、常用Composition API1. 拉开序幕的setup2. ref函数3. reactive函数4. Vue3.0中的响应式原理5. reactive对比ref 二、参考链接 一、常用Composition API 1. 拉开序幕的setup &#xff08;1&#xff09;Vue3.0中一个新的配置项&#xff0c;值为一个函数。 &#xff08…

逍遥自在学C语言 | 常见的预定义宏

前言 在C语言中&#xff0c;预定义宏是由编译器提供的一组特殊标识符&#xff0c;可以在程序中直接使用&#xff0c;无需进行额外的定义。 预定义宏可以提供有关源文件、行号、日期、时间和函数名等信息&#xff0c;对于调试和日志记录非常有用。 一、人物简介 第一位闪亮登…

解决Windows联想笔记本打不开文件,鼠标一直转圈圈的问题

在左下角搜索处输入cmd 然后输入以下命令&#xff1a; DISM.exe /Online /Cleanup-image /Scanhealth 回车 等它运行完 再输入&#xff1a; DISM.exe /Online /Cleanup-image /Restorehealth 回车 等它运行完 再输入&#xff1a; sfc /scannow 等它运行完&#xff0…

Python3,如何实现CPU的并行计算,那还不简单,5种方式,这篇就搞定。

多进程实现CPU并行计算 1、引言2、实战2.1 多进程模式2.1.1 定义2.1.2 multiprocessing2.1.3 模式2.1.4 适用场景2.1.4 代码示例 2.2 执行方法2.2.1 多线程并发执行2.2.2 进程池2.2.3 消息队列2.2.4 内存共享2.2.5 异步IO 3、总结 1、引言 小屌丝&#xff1a;鱼哥&#xff0c;…

神奇的甲方:恰恰是拔高我们最好的机遇!

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

LeetCode 打卡day52--动态规划之子序列问题

一个人的朝圣 — LeetCode打卡第52天 知识总结 Leetcode 300. 最长递增子序列题目说明代码说明 Leetcode 674. 最长连续递增序列题目说明代码说明 Leetcode 718. 最长重复子数组题目说明代码说明 知识总结 今天运用动态规划来解决子序列问题. 子序列 是由数组派生而来的序列&a…

Debezium系列之:深入理解tinyint(n)

Debezium系列之:深入理解tinyint 一、背景二、相关技术博客三、查看表的ddl四、深入理解tinyint(n)五、创建表六、插入数据七、查看topic数据八、总结一、背景 数据库修改了字段类型为tinyint,希望采集的时候能够转化为boolean类型,数据库字段类型如下图所示: 在设置了conv…

机器学习笔记 - Facebook AI Similarity Search(Faiss)简介

一、概述 Facebook AI Similarity Search (Faiss)是高效相似性搜索最受欢迎的轮子之一。给定一组向量,我们可以使用 Faiss 对它们进行索引——然后使用另一个向量(查询向量),我们在索引中搜索最相似的向量。 它包含搜索任何大小的向量集的算法,除非超出RAM的大小。它还包…

Go 语言精进之路——Go语言代码块与作用域理解

文章目录 前言代码块与作用域简介if 条件控制语句的代码块其他控制语句的代码块 前言 如果不深入理解 Go 语言的代码块作用域&#xff0c;程序将产生我们无法理解的行为&#xff0c;比如说在循环中创建 goroutine func, 为什么需要传递参数至 goroutine 内部&#xff0c;否则所…

柠檬精僵尸2023-2024_wb粉丝清道夫比赛博更好用的方法

微博批量移除微博粉丝方法_可视化的界面 多样性选择你要移除清理的粉丝类型 三个按钮就可以搞定了 移除粉丝步骤&#xff1a; 首先打开微博&#xff0c;登陆自己的账号。 找到你想要删除的粉丝&#xff0c;点开他/她的头像&#xff0c;打开他/她的个人主页 如果想要大批量清理…

尚硅谷Docker实战教程-笔记04【Docker镜像】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

accountId、uid、roleId 游戏中的3种id

1)accountId&#xff1a; // 是一个字符串 这个是字符串&#xff0c;玩家可以输入名字(比如:输入zfoo) 或者 通过微信生成(openid是不变的)。 2)uid&#xff1a;// long 这个是一个很长的,玩家通过http登录授权后&#xff0c;通过web层&#xff0c;由雪花算法根据accountId生成…

【每天40分钟,我们一起用50天刷完 (剑指Offer)】第十一天 11/50

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