搭建极狐GitLab(基于Docker): 步骤整合汇总记录

news/2024/9/8 12:29:58/文章来源:https://www.cnblogs.com/LinForest/p/18326668

执行背景:

(1) CentOS7(虚拟机ISO映像文件=CentOS-7-x86_64-DVD-2009.iso);

(2) repo(yum)源已切换为国内源;

命令汇总:


1. 安装Docker

相关命令:

# 查看仓库源中可使用版本
yum list docker-ce --showduplicates | sort -r# 安装指定版本
yum install docker-ce-docker完整版本号# 配置开机启动项
systemctl start docker
systemctl enable docker# docker版本查看
#docker version

补充说明:

[root@localhost ~]#  # 查看仓库源中可使用版本
[root@localhost ~]#  yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror
可安装的软件包* updates: mirrors.aliyun.com
Loading mirror speeds from cached hostfile* extras: mirrors.aliyun.com
docker-ce.x86_64            3:26.1.4-1.el7                      docker-ce-stable
docker-ce.x86_64            3:26.1.3-1.el7                      docker-ce-stable
...* base: mirrors.aliyun.com
[root@localhost ~]# :<<'END'
> docker-ce.x86_64(=docker-ce.操作系统版本号) 
> 3:26.1.4-1.el7(=3:docker版本号)
> => 下载docker的时候, 使用 docker-ce-docker版本号 指定所下载的版本, 比如 docker-ce-26.1.4-1.el7
> END

2. 环境变量设置 GITLAB_HOME
# 添加全局系统变量 GITLAB_HOME(在文件末尾添加 export GITLAB_HOME=/srv/gitlab 后保存)
# 按照官方文档 https://docs.gitlab.cn/jh/install/docker.html 
# 对于Linux用户, 路径必须为 /srv/gitlab
vi ~/.bashrc

3. GitLab容器初始化
# 如果中途GitLab设置错误, 想重来
# 停止、删除现有容器
# docker stop gitlab
# docker rm gitlab# 再 docker run

# 添加容器
#--hostname 192.168.44.103
docker run --detach \--publish 443:443 \--publish 80:80 \--publish 222:22 \--name gitlab \--restart always \--volume $GITLAB_HOME/config:/etc/gitlab:Z \--volume $GITLAB_HOME/logs:/var/log/gitlab:Z \--volume $GITLAB_HOME/data:/var/opt/gitlab:Z \--shm-size 256m \registry.gitlab.cn/omnibus/gitlab-jh:latest# 或者使用简写形式
docker run -d  \-p 443:443 -p 80:80 -p 222:22 \-name gitlab \--restart always \-v $GITLAB_HOME/config:/etc/gitlab:Z \-v $GITLAB_HOME/logs:/var/log/gitlab:Z \-v $GITLAB_HOME/data:/var/opt/gitlab:Z \--shm-size 256m \registry.gitlab.cn/omnibus/gitlab-jh:latest# publish: 容器内端口映射到主机端口: 443、80、22分别对应https访问、http访问、ssh访问
# name: 指定容器名称
# restart always: 设置容器重启策略 为 始终重启
# volume: 设置容器与主机挂载对应:
#     /etc/gitlab: 文件系统的安全上下文
#     /var/log/gitlab: GitLab 的日志文件
#     /var/opt/gitlab: GitLab 的数据# 启动容器
docker start gitlab# 简要查看docker容器内Gitlab运行情况
docker inspect gitlab --format "{{.State.Status}}"
# 查看已存在容器
# docker ps -a# 进入GitLab容器内部
docker exec -it  gitlab /bin/bash

4. 外网访问配置

主要是三处修改, 因为gitlab.rb全文件被注释, 所以可以选择 ①远处解开注释修改, 或者②直接随便找一个地方插进去

# 修改GitLab配置文件
vi /etc/gitlab/gitlab.rb
# 因为只是自己练习使用 直接使用虚拟机映射出去的IP来作为此处的GitLab访问IP# 配置 http协议访问地址(端口不标识则默认视为80) 
# external_url 'http://自定义访问ip:端口号' 
external_url 'http://192.168.232.128'# 配置ssh协议 访问地址和端口
# gitlab_rails['gitlab_shell_ssh_port'] = docekr run 命令配置gitlab时, ssh项映射端口号
gitlab_rails['gitlab_ssh_host'] = '192.168.232.128'
gitlab_rails['gitlab_shell_ssh_port'] = 222

5. 重启GitLab容器
# 重启GitLab
# 容器外部
docker restart gitlab
# 或者 容器内部 
gitlab-ctl restart

  1. 外网访问GitLab

    文件external_url配置项对应内容


初次登录(管理员身份):

​ 账号/密码 = root/容器中initial_root_password文件中读取(24h后会被注销, 密码需要自我存储/修改)


**首次访问出现502: 原因:**
  • 虚拟机内存初始化设置 没有给予大于4G的内存, 导致GitLab无法成功启动
  • 稍微等待, GitLab初始化还未完全
  • 系统内核没有在3.10以上(使用命令进行核实: uname -r )

7. 一些设置

语言设置:


密码修改(GitLab平台上操作):


执行记录:

[root@localhost ~]# # bashrc 文件已设置GITLAB_HOME系统变量完毕
[root@localhost ~]# cat ~/.bashrc
# .bashrc# User specific aliases and functionsalias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'# Source global definitions
if [ -f /etc/bashrc ]; then. /etc/bashrc
fiexport GITLAB_HOME=/srv/gitlab
[root@localhost ~]# docker run --detach \
>   --publish 443:443 \
>   --publish 80:80 \
>   --publish 222:22\
>   --name gitlab \
>   --restart always \
>   --volume $GITLAB_HOME/config:/etc/gitlab:Z \
>   --volume $GITLAB_HOME/logs:/var/log/gitlab:Z \
>   --volume $GITLAB_HOME/data:/var/opt/gitlab:Z \
>   --shm-size 256m \
>   registry.gitlab.cn/omnibus/gitlab-jh:latest
8428d380c939b0ac879b90621f35ceed0690e62995a4ae8e4872536709ee283b
[root@localhost ~]# docker start gitlab
gitlab
[root@localhost ~]# docker inspect gitlab --format "{{.State.Status}}"
running
[root@localhost ~]# # 进入容器内部, 修改GitLab配置文件, 方便外网访问
[root@localhost ~]# docker exec -it  gitlab /bin/bash
root@8428d380c939:/# vi /etc/gitlab/gitlab.rb
root@8428d380c939:/# # 容器内部重启GitLab
root@8428d380c939:/# gitlab-ctl restart
ok: run: alertmanager: (pid 1387) 0s
ok: run: gitaly: (pid 1396) 0s
ok: run: gitlab-exporter: (pid 1409) 0s
ok: run: gitlab-kas: (pid 1420) 0s
ok: run: gitlab-workhorse: (pid 1428) 1s
ok: run: logrotate: (pid 1438) 0s
ok: run: nginx: (pid 1444) 1s
ok: run: postgres-exporter: (pid 1449) 0s
ok: run: postgresql: (pid 1456) 0s
ok: run: prometheus: (pid 1465) 1s
ok: run: puma: (pid 1473) 0s
ok: run: redis: (pid 1478) 1s
ok: run: redis-exporter: (pid 1486) 0s
ok: run: sidekiq: (pid 1493) 0s
ok: run: sshd: (pid 1499) 0s
root@8428d380c939:/# exit
exit

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

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

相关文章

【待做】【攻防技术系列+权限提升】Windows提权

Windows提权思维导图Windows提权工具 vulmap vulmon开发的一款开源工具,原理是根据软件的名称和版本号来确定,是否有CVE及公开的EXP。这款Linux的工具挺好用,但是对于Windows系统层面不太适用。 windows-exp-suggester 这款和本工具的原理一样,尝试使用了之后,发现它的CVE…

[随笔]创作4天的心得感悟

随笔。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18327364 出自【进步*于辰的博客】今天,3月14日,和往常一样,也不是什么节日,就是看到博友们发的动态,也有所感慨。 算一算,我接触此平台已经327天了。虽…

【待做】【攻防技术系列+网络协议】ICMP协议

ICMP协议简介 ICMP(Internet Control Message Protocol)因特网控制报文协议。它是IPv4协议族中的一个子协议,用于IP主机、路由器之间传递控制消息。控制消息是在网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然不传输用户数据,但是对于用户数据…

C141 线段树分治+线性基 P3733 [HAOI2017] 八纵八横

视频链接:C141 线段树分治+线性基 P3733 [HAOI2017] 八纵八横_哔哩哔哩_bilibili P3733 [HAOI2017] 八纵八横 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 线段树分治+线性基 O(q*logq*logL*logL) #include <iostream> #include <cstring> #include <a…

将Mathtype添加到WPS中

(1)在顶部菜单栏,工具--加载项--在“模板和加载项”窗口中再点击“添加”(2)找到mathtype安装路径下面的“OfficeSupprot”,这时会看到有“32”和“64”两个文件夹,分别对应WPS软件的系统(任务管理器可以直接查看wps版本)。默认路径为下边这个:(3)如果许多功能不…

BUUCTF 3.warmup_csaw_2016

拿到题目,我们先运行一下我们发现这道题的样子和BUUCTF的rip很像,一样是让我们输入,一样是在输入超长字符串后程序会崩溃,所以我们可以猜测是一道栈溢出的问题,我们来看一下保护机制我们发现依旧是几乎没开保护机制,所以大概率是一道栈溢出的题。 我们看一下IDA我们发现最…

sql注入漏洞复现

and 1=1 正常and 1=2 报错从这就已经说明是sql数字型注入了 上sqlmap验证一下存在布尔盲注,时间盲注...... 我是在漏洞盒子上提交的,能不能通过看运气吧 下面这个漏洞已经是很久之前的了,现在已经是修复了,当时还是太年轻了......当时复现过程没有做好,截图也已经删掉了..…

【PHP系列】phpinfo里面有什么?

一、INFO_GENERAL:一般信息 1.1 版本 1.2 操作系统版本和SAPI 原创 猎豹安全中心 小豹讲安全 2021-05-25 14:30 在PHP中,我们往往通过phpinfo()函数(及可选选项)来检查配置设置和预定义变量,返回结果输出关于PHP的配置信息,其中包含了 PHP 编译选项、启用的扩展、PHP 版本、…

【学习笔记】线段树

本文冲刺 \(3000\) 行中,目前行数:\(2668\) 行。 【0】线段树简介 【0.1】线段树是干什么的 线段树是一种基于分治的树形数据结构,可以处理很多区间问题,值域问题。 【0.2】线段树的形态 线段树作为一棵二叉树,其左子节点维护的是左半区间的信息,右子节点维护的是右半区间…

从零开始的JAVAday22~day28

上周我们学习了如何定义变量,这周我们学习如何给变量起名。 硬性要求: 1.由数字、字母、下划线()和美元符($)组成 2.不能以数字开头 3.不能是关键字 4.区分大小写 软性要求: 小驼峰命名法:存在一个单词时所有字母都小写,存在多个字母时第一个单词小写第二个单词首字母大写…

Git的存储原理

Git提交的只有你的代码吗?底层存储大剖析!目录Git 设计原理Git vs SVNGit 存储模型.git 目录结构Git 基本数据对象Git 包文件Git 引用 Git 设计原理 概括的讲,Git 就是一个基于快照的内容寻址文件系统。 往下慢慢看。 Git vs SVN Git 出现前,主流版本控制系统(SVN...)一般…

运行一个jar包的过程

在Linux运作jar包在Linux系统中,一个Java Archive(JAR)文件是包含Java类文件、相关的元数据和资源(如文本、图片等)的压缩包,通常用于存储Java应用程序或库。要在Linux上运行一个JAR包,你可以按照以下步骤操作: 1、确保Java环境已安装: 在Linux系统中运行JAR文件之前,…