首页 > 其他分享 >gitlab--安装和配置

gitlab--安装和配置

时间:2023-03-22 23:02:13浏览次数:43  
标签:容器 -- gitlab 端口 etc docker 安装

docker 安装 gitlab

先配置镜像加速器

编辑下面文件(如果没有则新建)

vim /etc/docker/daemon.json

写入如下内容

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。

systemctl daemon-reload
systemctl restart docker

我这里用的版本是:gitlab/gitlab-ce:14.8.2-ce.0

环境处理
#1:防火墙是否开启,开启了可以直接关闭,如果不能关闭,就把所需的端口进行开放
systemctl status firewalld
#2:开放指定端口(因为22一般被sshd服务占据,所以这里用222端口)
firewall-cmd --zone=dmz --add-port=80/tcp --permanent
firewall-cmd --zone=dmz --add-port=443/tcp --permanent
firewall-cmd --zone=dmz --add-port=22/tcp --permanent
firewall-cmd --zone=dmz --add-port=222/tcp --permanent
firewall-cmd --reload #刷新
firewall-cmd --zone=dmz --list-ports

然后在重启 docker

 systemctl restart docker # 重启 docker

拉取镜像

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

生成挂载目录

# 生成挂载目录
mkdir -p /home/gitlab/etc/gitlab	
mkdir -p /home/gitlab/var/log
mkdir -p /home/gitlab/var/opt

启动容器,添加挂载路径,–privileged=true 要加上,不然可能因为权限问题导致启动失败

# 启动容器
docker run -d -p 443:443 -p 80:80 -p 222:22 --name gitlab-dev --restart always --privileged=true  -v /home/gitlab/etc/gitlab:/etc/gitlab -v /home/gitlab/var/log:/var/log/gitlab -v /home/gitlab/var/opt:/var/opt/gitlab gitlab/gitlab-ce:14.8.2-ce.0
  • -i :以交互模式运行容器,通常与 -t 同时使用命令解释
  • -t :为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -d :后台运行容器,并返回容器ID
  • -p:80:80 将容器内 80 端口映射至宿主机 80 端口,这是访问 gitlab 的端口
  • -p:222:22 将容器内22端口映射至宿主机222端口,这是访问 ssh 的端口
  • -v :/home/gitlab/etc/gitlab:/etc/gitlab 将容器/etc/gitlab 目录挂载到宿主机 /home/gitlab/etc/gitlab 目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
  • –restart always :容器自启动
  • –privileged=true :让容器获取宿主机 root 权限
  • –name gitlab-dev :设置容器名称为 gitlab-dev
  • gitlab/gitlab-ce:14.8.2-ce.0 :镜像的名称,这里也可以写镜像ID

查看容器是否启动

容器正常启动的

调整 gitlab 的配置

修改 gitlab.rb 配置文件操作最好是在容器内进行修改(也可以在宿主机映射目录中修改,记得修改完后进入容器验证修改结果),在挂载到宿主机的文件上直接进行修改可能会出现配置更新不到容器内,或者是不能即时更新到容器内,导致 gitlab 启动成功,但是无法访问或其它问题。

gitlab.rb文件内容默认全部注释

vim /home/gitlab/etc/gitlab/gitlab.rb

# 配置 http 协议所使用的 gitlab 访问地址,可以写域名。如果端口不写的话默认为 80 端口
external_url 'http://10.6.215.220'

# 配置ssh协议所使用的访问地址和端口
gitlab_rails['gitlab_ssh_host'] = '10.6.215.220'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是 run 时 22 端口映射的 222 端口

在容器改需要先进入容器在改

# 进入容器
docker exec -it gitlab-dev /bin/bash

# 修改
vi /etc/gitlab/gitlab.rb

重启 gitlab 容器

docker restart gitlab-dev

访问 http://10.6.215.220/

如果看到下面页面则安装成功,重启之后需要等待会

登录 gitlab

上面我们已经可以正常访问到登录页面了,但没有账号和密码怎么办?

gitlab 给我们的管理员账户是 root,Gitlab 默认的管理员临时密码在 gitlab 容器中 /etc/gitlab/initial_root_password 文件中,如果该路径下没有这个文件,我们就无法正常登录到 gitlab中去

因为我们挂载到本地了,所以可以在本地看到

cat /home/gitlab/etc/gitlab/initial_root_password

但是超级管理员的密码太复杂了,我们可以修改它,操作步骤如下

#  进入容器内部
docker exec -it gitlab-dev /bin/bash

# 进入控制台,等待控制台加载完毕
gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员
user = User.where(id:1).first

# 修改密码为12345678,必须同时更改密码和password_confirmation才能使其正常工作
user.password = '12345678'
user.password_confirmation = '12345678'

# 保存
user.save

# 退出
exit

这样密码就修改完成了,最后我们可以拿 root 和 12345678 登录 gitlab

配置Gitlab界面语言为中文

gitlab 默认是英文的,对英文不好的不太友好,gitlab 里可以设置成中文,但不是所有的都会翻译成中文,只有大部分会

操作步骤如下

保存后刷新一下页面,就变为中文的了

标签:容器,--,gitlab,端口,etc,docker,安装
From: https://www.cnblogs.com/zouzou-busy/p/16247053.html

相关文章

  • openstack T版脚本解读(云计算比赛)
    @目录iaas-pre.shiass-install-mysql.shiass-install-keystone.shiass-install-glance.shiass-install-placement.shiass-install-nova-con/com.shiaas-install-nova-contr......
  • Git常用命令
    一、分支操作1、查看分支gitbranch         列出所有的本地分支gitbranch-r      列出所有的远程分支gitbranch-a      列出所有的......
  • 面试题4
    在面试Netty时,面试官可能会问以下问题:Netty是什么?它的主要特点是什么?Netty支持哪些传输协议?你最熟悉哪种协议?Netty的线程模型是什么?它的优点是什么?Netty的ByteB......
  • ChIP-seq 分析:Differential Peaks(15)
    动动发财的小手,点个赞吧!1.寻找差异区域然而,识别特定于细胞系或条件的峰并不能捕获表观遗传事件的全部变化。为了识别表观遗传事件的差异,我们可以尝试量化IP样本中非......
  • React Native 快速上手
    reactnative储备知识扎实的JS基础+React相关知识核心组件创建项目:npmuninstall-greact-native-cli@react-native-community/clinpxreact-nativeinitAwesome......
  • C++图书订单管理系统[2023-03-22]
    C++图书订单管理系统[2023-03-22]采用面向对象程序设计方法设计并实现图书订单管理系统订单基本信息:顾客帐号、顾客姓名、订书日期、图书书号、书名、购买数量订单基本......
  • AlNico
    AlNiCo:SmartNIC-acceleratedContention-awareRequestSchedulingforTransactionProcessing22年ATC,使用off-pathFPGANIC,Innova-2SmartNIC针对事务调度,主要是事......
  • Spring框架
    1. 简介   (1)SpringFramework是其他框架的基础,如SpringMVC、SpringBoot、SpringCloud、SpringData、SpringSecurity。   (2)Spring有两个核心部分 ......
  • 区块链基本原理
    要解决的难题1)账本不能被篡改:分布式账本,一个坏人要修改,需要经过其他好人的同意2)账本不能丢失损坏:多个人记账,分布式账本3)证明你是你:匿名,数字签名。可以由多个账户......
  • 我喜欢听的歌曲
    /yun_pan/我的坚果云/qq音乐歌曲/doload/2CELLOS_HansZimmer-PiratesoftheCaribbean.flac/yun_pan/我的坚果云/qq音乐歌曲/doload/2Someone-StarUnkind(Lanfr......