在linux系统的docker中安装GitLab

一、安装GitLab:

在安装了docker之后就是下载安装GitLab了,在linux系统中输入命令:docker search gitlab就可以看到很多项目,一般安装第一个,它是英文版的,如果英文不好可以安装twang2218/gitlab-ce-zh。

image.png

1、安装项目

这里没有选第一个,下载安装中文版了,安装时间比较长,需要耐心等待。

image.png

2.创建挂载目录

mkdir -p /usr/local/gitlab/etc 
mkdir -p /usr/local/gitlab/log 
mkdir -p /usr/local/gitlab/data


3.修改目录权限


chmod 777 /usr/local/gitlab/etc
chmod 777 /usr/local/gitlab/log
chmod 777 /usr/local/gitlab/data

4.启动gitlab,执行docker

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --name gitlab -v /www/gitlab/etc:/etc/gitlab -v /www/gitlab/log:/var/log/gitlab -v /www/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /mydata/gitlab/etc:/etc/gitlab -v /mydata/gitlab/log:/var/log/gitlab -v /mydata/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh


 

这个命令的意思如下:

docker run \

-d                #后台运行,全称:detach

-p 8443:443     #将容器的内部端口8443映射到外部端口443上,外界会先访问443端口到达指定位置,然后发现443映射的是docker里的8443端口,就会继续访问8443端口,然后根据设置做出对应的处理。

-p 8090:80       #将容器的内部端口8090映射到外部端口80上,原理同上。

-p 8022:22       #将容器的内部端口8022映射到外部端口22上,原理同上。

--restart always   #容器自启动

--name gitlab      #设置容器的名称为gitlab

-v /usr/local/gitlab/etc:/etc/gitlab     #将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,一般挂载到一个比较大的磁盘上,防止后面出现磁盘满了的情况。

-v /usr/local/gitlab/log:/var/log/gitlab    #原理同上。

-v /usr/local/gitlab/data:/var/opt/gitlab    #原理同上。

--privileged=true             #让容器获取宿主机root权限

twang2218/gitlab-ce-zh         #镜像的名称,这里也可以写镜像的id。

5、查看gitlab是否已经启动,

如果后面跟上-a参数,则会把没启动的容器也显示出来。

docker ps -a

image.png

二、配置gitlab

1、首先进入容器,

里面的gitlab是容器的名称,就是上图里NAMES下面的那个信息。

docker exec -it gitlab bash

image.png

看到前面变成这样就说明进到容器里了。

2、修改gitlab.rb文件:

//先进入到gitlab目录

cd /etc/gitlab

//然后编辑gitlab.rb文件

vim gitlab.rb

image.png

执行vim命令后效果是这样:

image.png

3、修改gitlab.rb文件中的IP和端口号,修改external_url后面的值,这个值是IP地址或者域名,不用加端口号。

image.png

4、保存,在修改完毕后按一下esc键,然后输入:qw后按回车键保存文件。

image.png

将一下内容复制到gitlab.rb文件(注意修改成自己的ip),修改完成后 :wq 保存退出

external_url 'http://xx.xx.xx.xx'
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX'
gitlab_rails['gitlab_shell_ssh_port'] = 8022
 

external_url 'http://xx.xx.xx.xx'
gitlab_rails['gitlab_ssh_host'] = '192.168.XX.XX'
gitlab_rails['gitlab_shell_ssh_port'] = 8022

3、配置gitlab.yml文件。

//文件路径:/opt/gitlab/embedded/service/gitlab-rails/config

//先进入到config目录下

cd /opt/gitlab/embedded/service/gitlab-rails/config

image.png

//打开编辑gitlab.yml文件

vim gitlab.yml

image.png

//修改host与上面.rb文件里的external_url一致。

//修改port为80,这里定义的端口号是80,说明通过80端口可以访问到,在容器运行的时候使用了-p 8090:80进行端口映射

,就是将外部端口8090映射到docker容器的80端口上,外面通过8090端口访问时就被转到docker的80端口上了,这里定义的gitlab端口是80,就会被监听到,然后执行对应的操作。

6、重启docker中的gitlab,

因为此时已经进入到docker的gitlab容器中了,所以可以执行容器内重启服务命令:

gitlab-ctl restart

7、退出容器命令exit:

image.png

8、使用浏览器打开gitlab

,网址是gitlab.rb配置文件中定义的external_url的值,端口号是运行容器时-p后面定义的端口号,这里是:http://gitlab.wuniuai.com:8090,第一次访问账号和密码都是root,会让修改密码,改好后就可以正常使用了

image.png

9、查看容器详细信息

,可以查看gitlab的运行状态、端口映射情况、文件挂载情况,等于是把执行docker run时的所有信息都展示出来了:

docker inspect gitlab

image.png

image.png

从上方可以看到挂载了三个目录,如果要转移数据就需要把三个目录都转移到需要的位置,然后重新执行docker run运行和设置这个容器,run里的名称如果已经存在则无法执行,要么用新名称,要么使用docker rm 容器名称,把原来的容器删掉。

二、常用命令:

1、容器外停止:

docker stop gitlab    //这里的gitlab是执行docker run时--name后面设置的名字。

2、容器外重启:

docker restart gitlab

3、进入容器内部命令行:

docker exec -it gitlab bash

4、容器内部命令行中应用配置

,让修改后的配置生效:

gitlab-ctl reconfigure

5、容器内部命令行中重启应用:

gitlab-ctl restart

6、容器外查看正在运行的容器,返回的有ID和名称,这两个值都可以操作指定的容器:

docker ps

7、容器外查看所有容器,包含正在运行的和未运行的:

docker ps -a

8、容器外查看所有镜像:

docker images

9、容器外删除容器:

docker rm gitlab   //这里的gitlab是容器的名称,用这个容器的id也可以,效果都一样。

10、查看指定容器的日志记录:

docker logs gitlab    //这里是查看gitlab的日志信息,会显示日志文件中的所有内容。

11、修改gitlab.rb配置文件

vi /etc/gitlab/gitlab.rb

把对应的修改的#去掉,然后修改如下

external_url 'http://127.0.0.1:8080'   需要和创建容器指定的端口号一致
gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'
gitlab_rails['gitlab_shell_ssh_port'] = 222
nginx['listen_port'] =8080   

12、进gitlab容器重启配置服务

docker exec -it gitlab /bin/bash #进去gitlab容器的命令

gitlab-ctl reconfigure #重置gitlab客户端的命令

  等待一会儿完成后,exit退出即可;

13、重启gitlab容器

$ docker restart gitlab

14、根据设置好的Ip地址或者域名访问gitlab

http://ip:8080

进入以后会让修改密码,修改完成后登入即可;

15、运行项目创建项目

默认的登录名是root

使用docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password  可以查看root的默认密码 

 16、进入系统后,点击创建一个项目

所以在使用的时候需要加上 8881端口号 否则是访问不到的 请求被拒绝

使用的时候是 http://192.168.66.71:8881/root/myweb.git

 17、使用Git拉去远程项目需要绑定密钥

点击右上角头像设置SSH密钥,输入id_rsa.pub的内容,如下图所示:

保存后的结果。

保存后的结果。

 18、拉取或者上传项目之前

请先初始化本地git仓库,创建一个文件夹,在指定的位置初始化本地git仓库,便于规范性的操作。克隆拉取命令省略;

git init

git clone  ssh://git@192.168.66.71:8222/root/myweb.git

git clone http://192.168.66.71:8881/root/myweb.git
 

19、Gitlab中实现CI/CD,需要安装gitlab-runner

docker pull gitlab/gitlab-runner:latest

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

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

相关文章

2024最新CF罗技鼠标宏

使用效果: 支持的功能 M4 7发一个点HK417 连点瞬狙炼狱加特林一个圈 下载链接 点击下载

JS CSS HTML 的代码如何快速封装

我们为什么要封装代码,是因为封装后的代码,会显得非常美观,减少代码的复用,方便我们更好的去维护代码,不用一个一个页面的去找去改,直接封装好的代码里面去改就可以了 目录 1.html代码封装 2.CSS代码封装…

使用docker拉取镜像很慢或者总是超时的问题

在拉取镜像的时候比如说mysql镜像,在拉取 时总是失败: 像这种就是网络的原因,因为你是连接到了外网去进行下载的,这个时候可以添加你的访问镜像源。也就是daemon.json文件,如果你没有这个文件可以输入 vim /etc/dock…

MySQL复制问题和解决

目录 环境介绍 一,主库执行delete,从库没有该数据 模拟故障 修复故障 二,主库执行insert,从库已存在该数据 模拟故障 故障恢复 三,主库执行update,从库没有该数据 模拟故障 故障恢复 四&#xf…

[RocketMQ] 发送重试机制与消费重试机制~

发送重试 RocketMQ 客户端发送消息时,由于网络故障等因素导致消息发送失败,这时客户端SDK会触发重试机制,尝试重新发送以达到调用成功的效果。 触发条件 客户端消息发送请求失败或超时。服务端节点处于重启或下线状态。服务端运行慢造成请…

mfc140u.dll是什么文件?如何解决mfc140u.dll丢失的相关问题

遇到“mfc140u.dll文件丢失”的错误通常影响应用程序的运行,这个问题主要出现在使用Microsoft Visual C环境开发的软件中。mfc140u.dll是一个重要的系统文件,如果它丢失或损坏,会导致相关程序无法启动。本文将简要介绍几种快速有效的方法来恢…

02-9.python入门基础一Python模块与包(一)

一、Python 模块的概念 (一)模块的基本定义 在 Python 中,模块(Module)是一种组织代码的基本单元,简单来说,一个以 .py 结尾的 Python 文件就是一个模块。例如,我们创建一个名为 ex…

当我用影刀AI Power做了一个旅游攻略小助手

在线体验地址:旅游攻略小助手https://power.yingdao.com/assistant/ca1dfe1c-9451-450e-a5f1-d270e938a3ad/share 运行效果图展示: 话不多说一起看下效果图: 智能体的截图: 工作流截图: 搭建逻辑: 其实这…

AI Agent与MEME:技术与文化融合驱动Web3创新

AI Agent如何引领Web3新时代? 随着Web3与区块链技术的迅速发展,AI Agent作为人工智能与区块链的交汇点,正在逐步成为推动去中心化生态的重要力量。同时,MEME文化凭借其强大的社区驱动力和文化渗透力,在链上生态中扮演着…

【STM32 Modbus编程】-作为主设备写入多个线圈和寄存器

作为主设备写入多个线圈和寄存器 文章目录 作为主设备写入多个线圈和寄存器1、硬件准备与连接1.1 RS485模块介绍1.2 硬件配置与接线1.3 软件准备2、写入多个线圈2.1 数据格式2.2 发送数据2.3 结果3、写入多个寄存器3.1 数据格式3.2 发送数据3.3 结果本文将实现STM32作为ModBus主…

Spring学习之——Sping-XML

一、Spring的概述 (一)什么是Spring? Spring是针对bean对象的生命周期进行管理的轻量级容器。提供了功能强大IOC、AOP及Web MVC等功能。Spring框架主要由七部分组成:分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 S…

电商商品详情API接口(item get)数据分析上货

电商商品详情API接口(item get)在数据分析与商品上货方面发挥着重要作用。以下是对这两个方面的详细探讨: 一、数据分析 数据源获取: 商品详情API接口提供了丰富的数据源,包括商品的标题、价格、库存、描述、图片、用…

EasyGBS国标GB28181平台P2P远程访问故障排查指南:客户端角度的排查思路

在现代视频监控系统中,P2P(点对点)技术因其便捷性和高效性而被广泛应用。然而,当用户在使用P2P远程访问时遇到设备不在线或无法访问的问题时,有效的排查方法显得尤为重要。本文将从客户端的角度出发,详细探…

win11 C盘出现感叹号解决方法

出现感叹号,原因是对C盘进行了BitLocker驱动器加密操作。如果想去除感叹号,对C盘进行BitLocker解密即可。 步骤如下: 1.点击Windows搜索框 2.搜索框内输入 系统 3.按下回车,进入系统界面 4.点击隐私和安全性 点击BitLocker驱…

学习threejs,scene.overrideMaterial全局材质效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.2 ☘️THREE.Scene 场景1.2 ☘️…

GTID详解

概念和组成 1,全局事务表示:global transaction identifiers 2, GTID和事务一一对应,并且全局唯一 3,一个GTID在一个服务器上只执行一次 4,mysql 5.6.5开始支持 组成 GTID server_uuid:transaction_id 如&#xf…

prober.php探针

raw.githubusercontent.com/kmvan/x-prober/master/dist/prober.php

差分矩阵(Difference Matrix)与累计和矩阵(Running Sum Matrix)的概念与应用:中英双语

本文是学习这本书的笔记: https://web.stanford.edu/~boyd/vmls/ 差分矩阵(Difference Matrix)与累计和矩阵(Running Sum Matrix)的概念与应用 在线性代数和信号处理等领域中,矩阵运算常被用来表示和计算各种数据变换…

EasyPlayer.js播放器Web播放H.265要兼顾哪些方面?

在数字化时代,流媒体技术已经成为信息传播和娱乐消费的重要方式。随着互联网技术的飞速发展和移动设备的普及,流媒体服务正在重塑我们的生活和工作方式。从视频点播、在线直播到音乐流媒体,流媒体技术的广泛应用不仅改变了内容的分发和消费模…

AI开发:支持向量机(SVM)鸢尾花模型入门教程- Python 机器学习

最近接触了一些数据分析的任务,越来越多地听到支持向量机(SVM), 之前我们也一起学习过 AI开发:支持向量机(SVM)入门教程- Python 机器学习 今天我们再由浅入深的地来重温和学习这个AI算法,以便我们进一步掌握如何熟悉…