在linux系统的docker中安装GitLab

server/2024/12/23 14:02:30/

一、安装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

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

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.ppmy.cn/server/152513.html

相关文章

ASP.NET Core - 依赖注入 自动批量注入

依赖注入配置变形 随着业务的增长,我们项目工作中的类型、服务越来越多,而每一个服务的依赖注入关系都需要在入口文件通过Service.Add{}方法去进行注册,这将是非常麻烦的,入口文件需要频繁改动,而且代码组织管理也会变…

JAVA数字人创作文案视频链接提取数字人源码小程序+公众号+APP+H5

JAVA数字人创作文案提取与生成系统:全能型内容创作与运营解决方案 在当今数字化内容井喷的时代,如何高效、创新地生产并传播内容,成为了众多内容创作者、商户乃至企业面临的重要课题。我们的JAVA数字人创作文案提取与生成系统,正…

ARM 处理器平台 Ethernet Compliance 测试流程示例

By Toradex秦海 1). 简介 为了保证基于IEEE 802.3 协议设计的以太网设备接口可以互相兼容互联互通,需要进行 Ethernet Compliance 一致性测试,相关的技术原理说明请参考如下文章,本文就不赘述,主要展示基于 NXP i.MX8M Mini ARM…

Android adb查看某个进程的总线程数

Android adb查看某个进程的总线程数 adb shell 进入控制台,然后: top -m 20 列出当前系统的进程,找到目标进程的id, ps -T 进程id | wc -l Android adb shell ps进程查找以及kill-CSDN博客文章浏览阅读777次,点赞3次&a…

VSCode 中 Git 功能比较:内置 Git、GitLens 与 Git History 插件

在软件开发领域,版本控制是维护代码变更的重要工具。Git 作为最流行的版本控制系统,被广泛集成在各种代码编辑器中。Visual Studio Code(VSCode)不仅内置了 Git 支持,还提供了丰富的扩展来增强 Git 功能。本文将对比 V…

常用的Git命令总结

git add filename 把文件添加到仓库 git commit –m “注释” 把文件提交到仓库 git status 查看仓库当前状态 git diff filename 查看文件具体修改了什么内容 git log 查看历史记录 git log –prettyoneline(简化)查看历史记录 git reset –hardH…

【论文笔记】欧美学术论文写作习惯解析:非母语作者的指南

学术论文写作不仅要求内容科学严谨,还要求表达符合国际学术惯例。对于准备向欧美期刊投稿的作者,了解英语论文的写作习惯尤为重要。这篇文章将深入解析欧美人英文论文写作的习惯,并提供实用建议,帮助非母语作者更高效地撰写论文。…

使用qemu搭建armv7嵌入式开发环境

目录 目录 1 概述 2 环境准备 2.1 vexpress系列开发板介绍 2.2 安装工具 2.2.1 安装交叉工具链 2.2.2 安装qemu 2.2.3 安装其他工具 3 启动uboot 3.1 uboot下载与编译 3.1.1 下载 3.1.2 编译 3.2 使用qemu启动uboot 4 启动kernel 4.1 下载和编译kernel 4.1.1 下…