使用docker搭建GitLab个人开发项目私服

devtools/2024/9/19 0:44:05/ 标签: docker, gitlab, 个人开发

docker_0">一、安装docker

1.更新系统

dnf update

# 最后出现这个标识就说明更新系统成功
Complete!

docker_9">2.添加docker

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

# 最后出现这个标识就说明添加成功
Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo

docker_17">3.安装docker,并允许卸载已经安装的软件(建议不加,避免出现卸载其他软件所需的依赖,而导致其他软件使用异常)

yum install -y docker-ce --allowerasing

# 最后出现这个标识就说明安装成功
Complete!

4.启动 Docker

systemctl start docker

5.查看 Docker 启动状态

systemctl status docker
active说明docker已经启动。

docker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)Active: active (running) since Sun 2024-04-21 06:37:45 EDT; 51s agoDocs: https://docs.docker.comMain PID: 88635 (dockerd)Tasks: 9Memory: 34.3MCGroup: /system.slice/docker.service└─88635 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockApr 21 06:37:45 node-05 systemd[1]: Starting Docker Application Container Engine...
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.248538814-04:00" level=info msg="Starting up"
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.306599084-04:00" level=info msg="Loading containers: start."
Apr 21 06:37:45 node-05 dockerd[88635]: time="2024-04-21T06:37:45.753676236-04:00" level=info msg="Loading containers: done."

6.设置 Docker 开机自启

systemctl enable docker

二、安装GitLab

1.查找GitLab

docker search gitlab

gitlab_57">2.拉取gitlab镜像

docker pull gitlab/gitlab-ce:latest
如果查找的镜像没有自己想要的,直接使用拉取gitlab/gitlab-ce:latest这个官方最新镜像。

# 看到一下信息,说明镜像拉取成功,也可以通过docker images查看拉取的镜像,如果能看到gitlab/gitlab-ce镜像,说明拉取成功
latest: Pulling from gitlab/gitlab-ce
7021d1b70935: Pull complete 
84ce88366b95: Pull complete 
e1c92fb77de1: Pull complete 
719e91a15767: Pull complete 
d680b9b016aa: Pull complete 
f0027cb8bf12: Pull complete 
8090ecb94c61: Pull complete 
2d67bfd969b5: Pull complete 
216d686bfe05: Pull complete 
Digest: sha256:7c1182ba8d3f30fb82a4c1d2fcc4da35e23929775564642a2310941bc92de1a7
Status: Downloaded newer image for gitlab/gitlab-ce:latest
docker.io/gitlab/gitlab-ce:latest

gitlab_78">3.启动gitlab

注意先使用一下命令创建挂载卷目录:mkdir -p ./software/gitlab/{logs,data,config},这样就可以不用进入容易查看gitlab的一些目录。

docker run -d \
--hostname gitlab.orkasgb.com \
-p 8443:443 -p 8090:80 -p 8022:22 \
--restart always --name gitlab \
-v /orkasgb/software/gitlab/config:/etc/gitlab \
-v /orkasgb/software/gitlab/log:/var/log/gitlab \
-v /orkasgb/software/gitlab/data:/var/opt/gitlab \
--privileged=true gitlab/gitlab-ce \
参数解释:
-d #后台运行,全称:detach
-p 8443:443 #将容器内部端口向外映射,全称:publish
-p 8090:80 #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口,全称:publish
-p 8022:22 #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口,全称:publish
–restart always #容器自启动
–name gitlab #设置容器名称为gitlab
-v /orkasgb/software/gitlab/config:/etc/gitlab #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建
-v /orkasgb/software/gitlab/log:/var/log/gitlab #与上面一样
-v /orkasgb/software/gitlab/data:/var/opt/gitlab #与上面一样
–privileged=true #让容器获取宿主机root权限
gitlab/gitlab-ce #镜像的名称,这里也可以写镜像ID

4.查看启动日志

docker logs gitlab

  - acme (4.1.6)
# 如果没有明显错误,说明启动正常
Installing cookbook gem dependencies:
Compiling cookbooks...
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:2: warning: already initialized constant SELinuxDistroHelper::REDHAT_RELEASE_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:2: warning: previous definition of REDHAT_RELEASE_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:3: warning: already initialized constant SELinuxDistroHelper::OS_RELEASE_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/selinux_distro_helper.rb:3: warning: previous definition of OS_RELEASE_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:4: warning: already initialized constant SecretsHelper::SECRETS_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:4: warning: previous definition of SECRETS_FILE was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:5: warning: already initialized constant SecretsHelper::SECRETS_FILE_CHEF_ATTR
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:5: warning: previous definition of SECRETS_FILE_CHEF_ATTR was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/helpers/secrets_helper.rb:6: warning: already initialized constant SecretsHelper::SKIP_GENERATE_SECRETS_CHEF_ATTR
/opt/gitlab/embedded/cookbooks/package/libraries/helpers/secrets_helper.rb:6: warning: previous definition of SKIP_GENERATE_SECRETS_CHEF_ATTR was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/gitlab_cluster.rb:16: warning: already initialized constant GitlabCluster::CONFIG_PATH
/opt/gitlab/embedded/cookbooks/package/libraries/gitlab_cluster.rb:16: warning: previous definition of CONFIG_PATH was here
/opt/gitlab/embedded/cookbooks/cache/cookbooks/package/libraries/gitlab_cluster.rb:17: warning: already initialized constant GitlabCluster::JSON_FILE
/opt/gitlab/embedded/cookbooks/package/libraries/gitlab_cluster.rb:17: warning: previous definition of JSON_FILE was here
Loading Cinc Auditor profile files:
Loading Cinc Auditor input files:
Loading Cinc Auditor waiver files:
[2024-04-21T11:29:49+00:00] INFO: Generating default secrets

gitlab_129">10.进入到gitlab容器进行基础信息配置

docker exec -it gitlab bash

gitlabrb_131">10.1 编辑gitlab.rb

cd /etc/gitlab
vi ./gitlab.rb

  • 修改external_url为node-05
  • 修改gitlab_rails['gitlab_ssh_host']为node-05
  • 修改gitlab_rails['gitlab_shell_ssh_port']为8022

gitlabyml_137">10.2 编辑gitlab.yml

cd /opt/gitlab/embedded/service/gitlab-rails/config
vim gitlab.yml

  • 修改port为8022
  • 修改url为node-05

gitlabrails_console_e_production_142">10.3.重置账户密码信息,在容器内部,使用gitlab-rails console -e production重置密码。

  • 链接数据库:gitlab-rails console -e production
  • 获取用户:user = User.where(id:1).first
  • 修改用户账号:user.username = 'gitlab'
  • 修改用户密码:user.password = 'gitlab123'
  • 保存用户:user.save!

11.保存配置后,重启

重启配置:gitlab-ctl reconfigure或者直接重启gitlabgitlab-ctl restart gitlab

gitlabgitlab_150">12.重启后,就可以使用http://ip:8090访问gitlab,账户为gitlab

gitlab_152">13.点击登录用户的头像,设置为中文界面,在配置gitlab界面,启用允许从其他项目导入功能。

在这里插入图片描述


http://www.ppmy.cn/devtools/7973.html

相关文章

软件杯 深度学习实现行人重识别 - python opencv yolo Reid

文章目录 0 前言1 课题背景2 效果展示3 行人检测4 行人重识别5 其他工具6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习的行人重识别算法研究与实现 ** 该项目较为新颖,适合作为竞赛课题方向&#xff0c…

如何在PostgreSQL中使用pg_stat_statements插件进行SQL性能统计和分析?

文章目录 一、启用pg_stat_statements插件二、查看统计信息三、定期重置统计信息四、注意事项 PostgreSQL中的pg_stat_statements是一个强大的插件,用于追踪执行时间最长的SQL语句。通过它,我们可以获取有关SQL语句执行频率、总执行时间、平均执行时间等…

mysql查询语句何提高查询效率

在MySQL中,多表联查是数据库操作中常见的一种查询方式,它能够让我们从一个或多个相关的表中提取数据。然而,不合理的联查操作可能会导致查询效率低下,甚至影响整个数据库的性能。以下是4个提高多表联查效率的具体实例及其解析&…

centos 7.9 安装 ftp 传输文件

ftp server 端 sudo yum install vsftpd ftp其中 vsftpd 为 ftp server 端,ftp 包含 ftp 这个客户端命令。 # sudo rpm -ql vsftpd/etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /…

.NET/C#汇总 —— 数据库概念知识

1 为什么要⼀定要设置主键? 其实这个不是⼀定的,有些场景下,⼩系统或者没什么⽤的表,不设置主键也没关系,mysql最好是⽤ ⾃增主键,主要是以下两个原因:如果定义了主键,那么InnoDB会选择主键作为聚集索引、如果没有显 式定义主键,则innodb 会选择第⼀个不包含有NULL值…

2.1K Star微软开源的高质量 iot库

功能描述 该项目是一个开源的 .NET Core 实现,旨在帮助开发者构建适用于物联网(IoT)设备和场景的应用程序。它提供了与传感器、显示器和输入设备等相互作用所需的 GPIO 引脚、串口等硬件的接口。该仓库包含 System.Device.Gpio 库以及针对各种板卡(如 Ra…

kettle从入门到精通 第五十三课 ETL之kettle MQTT/RabbitMQ consumer实战

1、上一节课我们学习了MQTT producer 生产者步骤,MQTT consumer消费者步骤。该步骤可以从支持MRQTT协议的中间件获取数据,该步骤和kafka consumer 一样可以处理实时数据交互,如下图所示: 2、双击步骤打开MQTT consumer 配置窗口&a…

计算机视觉中,什么是上游任务、下游任务和pretext task?

在机器学习和深度学习的语境中,尤其是当涉及到预训练模型时,我们经常听到“上游任务”和“下游任务”这两个术语。 上游任务通常指的是模型在大量无标签或有标签的数据上进行预训练的任务,其目标是让模型学习到数据的内在规律和特征表示。 …

基于STM32的蓝牙小车的Proteus仿真(虚拟串口模拟)

文章目录 一、前言二、仿真图1.要求2.思路3.画图3.1 电源部分3.2 超声波测距部分3.3 电机驱动部分3.4 按键部分3.5 蓝牙部分3.6 显示屏部分3.7 整体 4.仿真5.软件 三、总结 一、前言 proteus本身并不支持蓝牙仿真,这里我采用虚拟串口的方式来模拟蓝牙控制。 这里给…

C语言进阶课程学习记录-函数参数的秘密

C语言进阶课程学习记录-函数参数的秘密 实验实验小结调用约定实验-求平均数实验-可变参数的函数小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验 #include <stdio.h>int func(int i, int…

shell 脚本基础练习

编写脚本 sysinfo.sh&#xff0c;显示当前主机系统信息&#xff0c;包括:主机名&#xff0c;IPv4地址&#xff0c;操作系统版本&#xff0c;内核版 本&#xff0c;CPU型号&#xff0c;内存大小&#xff0c;硬盘大小 tr命令用于替换或删除字符。 cut命令用于从文件或标准输入…

CSS的语法规则——基础选择器

元素&#xff1a; 用法&#xff1a; 标签名&#xff1a;{style的内容} 特点&#xff1a; 全局性&#xff0c;使用后&#xff0c;所有的相同标签都是同一种样式。 举例&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UT…

Redis底层数据结构之SDS

目录 一、概述二、SDS结构三、为什么使用SDS 下一篇 redis底层数据结构之ziplist 一、概述 Redis 中的 SDS&#xff08;Simple Dynamic String&#xff0c;简单动态字符串&#xff09;是 Redis 用于存储字符串值的底层实现&#xff0c;是对 C 语言传统字符串&#xff08;以 nu…

小米K8s运维-云原生方向(面经分享)

大家好&#xff0c;我是秋意零。今天分享一篇小米运维面经。 小米K8s运维-云原生方向 一面 2024年4月3日 | 10点 | 一面 | 40 min 左右 1&#xff09;自我介绍 2&#xff09;你熟悉Python多一点吗&#xff1f;还熟悉其它语言吗&#xff0c;拿出来写过的&#xff1f; 3&am…

K8s: 从集群外部访问Service

从集群外部访问 Service 1 &#xff09;概述 在前面我们一直实践的是在集群内部访问 Service&#xff0c;之前有2种方法 方法1&#xff1a;在一个node节点上&#xff0c;通过对创建的的时候&#xff0c;对port进行一个环境变量的注册来保证Service能够正确对 不同的pod 访问到…

网络原理-IP协议

一、IP协议报头 版本号:用来表示IP协议的版本,现在常用的IP协议有两个版本,IPv4和IPv6&#xff0c;其他版本可能只存在于实验室中&#xff0c;并没有被广泛的使用。 首部长度:用来表示IP报头的长度,因为存在"选项"字段&#xff0c;所以IP报头是可变长的,此处单位为4…

JVM类加载基本流程及双亲委派模型

1.JVM内存区域划分 一个运行起来的Java进程就是一个JVM虚拟机&#xff0c;这就需要从操作系统中申请一片内存区域。JVM申请到内存之后&#xff0c;会把这个内存划分为几个区域&#xff0c;每个区域都有各自的作用。 一般会把内存划分为四个区域&#xff1a;方法区(也称 "…

Elasticsearch:使用向量化和 FFI/madvise 加速 Lucene

作者&#xff1a;来自 Elastic Chris Hegarty 在 Lucene 领域&#xff0c;我们一直热切地采用新版本 Java 的功能。这些功能使 Lucene 更接近 JVM 和底层硬件&#xff0c;从而提高了性能和稳定性。这使得 Lucene 保持现代化和具有竞争力。 Lucene 的下一个主要版本&#xff0…

Docker

Docker Docker 是一个开源的应用容器引擎&#xff0c;它最初是用 Go 语言开发的。Docker 允许开发者将应用程序及其依赖、库和环境打包到一个可移植的容器中&#xff0c;这个容器可以在任何支持 Docker 的 Linux 或 Windows 机器上运行&#xff0c;保证了应用在不同环境之间的…

MATLAB初学者入门(9)—— 线性回归

线性回归是一种统计方法&#xff0c;用于建立一个或多个自变量&#xff08;解释变量&#xff09;和因变量之间的关系模型。在MATLAB中&#xff0c;可以使用多种方法来实现线性回归&#xff0c;包括使用内置函数如fitlm、regress或直接使用矩阵运算来求解。以下是一些详细的案例…