首页 > 其他分享 >搭建极狐GitLab(基于Docker): 步骤整合汇总记录

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

时间:2024-07-27 19:39:52浏览次数:8  
标签:gitlab run -- GitLab 极狐 Docker root docker

执行背景:

(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 functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

export 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

标签:gitlab,run,--,GitLab,极狐,Docker,root,docker
From: https://www.cnblogs.com/LinForest/p/18326668

相关文章

  • 虚拟机安装Docker
    1.卸载旧版首先如果系统中已经存在旧的Docker,则先卸载:yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine\docker-selinux2.配......
  • linux学习记录(docker)
    DockeDocker是基于Go语言实现的开源容器项目。它诞生于2013年年初,最初发起者是dotCloud公司。Docker自开源后受到业界广泛的关注与参与,目前已有80多个开源组件,逐渐形成了围绕Docker容器的完整的生态体系。dotCloud公司于2013年年底改名为DockerIoc,专注于Docker相关技术和产......
  • Docker 和 k8s 学习
    披个甲:偷的图灵学院的笔记docker:https://note.youdao.com/ynoteshare/index.html?id=db5365c679b7d9129cbcfab5cb682d69&type=note&_time=1722071596141k8s:https://note.youdao.com/ynoteshare/index.html?id=b2d5991b16e43cef9ac5071fbc516026&type=note&_time=1722......
  • 运行 Github Action 测试 Docker 镜像时退出代码 137
    我正在学习Testdriven.io:使用FastAPI和Docker进行测试驱动开发课程,目前正在学习持续集成部分。在本节中,您将使用github操作来构建docker映像并运行测试和linting等。在流程的测试Docker映像步骤中,当尝试进行pytest时,我收到以下错误:错误:进程已完成并退出代码......
  • docker 中的 Pytest 运行 venv 文件的测试
    我正在关注https://testdriven.io/courses/tdd-fastapi/pytest-setup/,但是当第一次运行docker-composeexecwebpython-mpytest时,我得到collected212items/24errors而不是预期的0个项目.简短的测试摘要信息显示在其他中ERRORenv/Lib/site-pa......
  • Dockers 部署Nodejs环境的ts 项目遇到的问题
    Dockers部署Nodejs环境的ts项目遇到的问题由于不熟悉TS和nodejs所以过程比较曲折。webpack.config\tsconfig.json\package.json\是几个比较关键的文件。细节可以去看详细文档,这里不展开讲;主要是缺失了start.sh文件和执行npmrunbuild的时候报错问题;遇到报错时,请用最新的AI,......
  • 使用 docker run 将 Python 单击选项传递给 ENTRYPOINT 会出现错误:“在 $PATH 中找不
    我有一个简单的python脚本,我想在docker容器内运行它。它打印一行消息“Hello{name}”。python脚本使用clickCLI界面来定义收件人名称,如果我直接运行它(不使用dockerrun命令),它将如下所示:pythonhello.py-nSmithDockerbuild命令:dockerbuild.-thello:1.......
  • gitlab 服务搭建小记
    给团队搭建一个内网gitlab服务......
  • gitlab以及分支管理
    一、分支概念每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,而master才是指向提交的,所以,HEAD指向的就是当前分支。开始的时候,master分支是一条线,Git......
  • 将手机作为服务器运行docker服务
    前言目前手机的配置并不低,即使是2019年生产的一加七Pro,配置也有12+256,CPU是骁龙855,作为服务器运行着配置绰绰有余了,二手的价格现在是400左右也能接受。相对于是自带ups电源的便携低耗docker服务器,还能同时使用安卓系统,配上adb远程做云手机也可以。要想原生支持docker不仅需要roo......