linux中docker部署gitlab

前言

gitlab只支持linux系统中部署,如果需要在windows上部署,则需要暗转wsl子系统(相当于window中的linux虚拟机);可以从microsoft官网上查询相关资料,自行安装

官网地址

gitlab官网

docker官网

gitlab中使用docker安装教程

linux中安装docker教程

docker安装之后的标志:
命令行键入docker 出现命令帮助表示成功

在docker中安装gitlab

准备一个空目录,并创建data logs config目录
mkdir /root/gitlab/
mkdir /root/gitlab/data
mkdir /root/gitlab/logs
mkdir /root/gitlab/config
下载并安装gitlab

理解下面某些参数可以认为docker容器相当在系统中开辟出的一台虚拟机,拥有隔绝而独立的环境

sudo docker run --detach \
 --hostname gitlab.example.com \  # 没有域名可忽略
 --publish 8443:443 --publish 880:80 --publish 23:22 \  # 设置系统端口和容器端口的对应;形式  系统端口:容器端口
 --name gitlab \
 --restart unless-stopped \
 --volume /root/gitlab/config:/etc/gitlab \
 --volume /root/gitlab/logs:/var/log/gitlab \ 
 --volume /root/gitlab/data:/var/opt/gitlab \
 --shm-size 256m \
 gitlab/gitlab-ce:latest  # 指定要安装gitlab的版本

上面命令执行后,若是已下载所指定版本,会直接进行安装,若是未下载,则会先进行下载,耐心等待即可

配置gitlab主机名
  1. 修改/root/gitlab/config/gitlab.rb
# 把external_url改成部署机器的域名或者ip

vim /root/gitlab/config/gitlab.rb

##########
external_url 'http://10.82.253.22'
##########
  1. 修改/root/gitlab/data/gitlab-rails/etc/gitlab.yml
# 找到关键字 ## Web server settings
# 修改host和port,以及是否启用ssl

由于这里并没有使用nginx进行转发,所以端口就没有设置,若是配合nginx使用,那么上面的gitlab.rb中host要加上端口

修改gitlab的默认端口

此处端口会显示在网页端clone的链接上

vim /root/gitlab/config/gitlab.rb

###############
### GitLab Shell settings for GitLab
gitlab_rails['gitlab_shell_ssh_port'] = 23
# gitlab_rails['gitlab_shell_git_timeout'] = 800
###############
修改gitlab数据存储路径

一般不需要更改,因为我所在公司的仓库比较大,几十G,所以得改;这个建议一开始就把docker和gitlab安装到比较大的系统盘下

如有需要可以操作,但是实践操作下来似乎没有生效,感兴趣的人可以尝试一下,找一找问题所在,欢迎解答疑惑

vim /root/gitlab/config/gitlab.rb

# 找到 git_data_dirs
# 修改后面的path路径即可
令修改的配置生效

每次修改gitlab配置,都需要重新配置并重启才能生效

因为gitlab是在docker中安装的,属于容器,所以执行gitlab的后台命令要进入到容器中

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

# 指定gitlab重配命令
gitlab-ctl reconfigure  # 耗时比较久
gitlab-ctl restart
gitlab-ctl status

设置root用户密码

# 方法一
# 输入下面命令,等待交互即可(较老的gitlab版本可能不支持)
docker exec -it gitlab gitlab-rake "gitlab:password:reset[root]"

# 方法二(较老的版本也支持)
docker exec -it gitlab
gitlab-rails console -e production

user = User.where(id: 1).first
user.password = 'xxxxx'
user.password_confirmation = 'xxxxx'
user.save
exit

登录gitlab

  1. 输入配置的host
  2. 输入root和设置的密码
  3. 成功登录

遇到的一些问题及解决方法

使用docker启动gitlab时,提示端口相关错误
# 1. 检查映射的系统端口是否已被占用,比如经常默认的 80 8080 443 22;如果被占用,更换端口即可

# 2. 如果未被占用,尝试重新启动docker
systemctl restart docker
docker start gitlab

# 3. 如果上面方法行不通,检查一下内容内核是否满足docker使用的要求;官方要求CentOS内核在3.10以上,3.10使用也会有问题
uname -a

# 4. 如果是内核太低,升级内核,不过比较麻烦,如果服务不多的话,建议重装系统吧
git推送大仓库

git推送大型仓库时报错,小型仓库正常,报错信息如下

56: Cmd('git') failed due to: exit code(1)
  cmdline: git push mirror master
  stderr: 'time="2021-11-29T14:29:12Z" level=info msg="SSL_CERT_DIR is configured" ssl_cert_dir=/opt/gitlab/embedded/ssl
/certs/
remote: GitLab: Push operation timed out
remote:
remote: Timing information for debugging purposes:
remote: Running checks for ref: master
remote: Checking if you are allowed to push... (8.49ms)
remote: Checking if default branch is being deleted... (0.03ms)
remote: Checking if you are force pushing to a protected branch... (13.68ms)
remote: Checking if you are allowed to push to the protected branch... (12.4ms)
remote: Scanning repository for blobs stored in LFS and verifying their files have been uploaded to GitLab... (cancelled
 after 29366.98ms)
remote: Running checks for 1 changes (cancelled after 29367.27ms)
To ssh://10.xx.253.xx:xx/xxx/xxxxxx.git'
 ! [remote rejected]   master -> master (pre-receive hook declined)
error: failed to push some refs to 'ssh://10.xx.253.xx:xx/xxx/xxxxxx.git''

解决方法:
在gitlab后台将对应仓库的设置中关闭LFS;重新推送即可
在这里插入图片描述]

常用的docker和gitlab的命令
## gitlab相关
# 重新配置gitlab
gitlab-ctl reconfigure
# 重启gitlab
gitlab-ctl restart
# 停止gitlab
gitlab-ctl stop
# 查看gitlab运行状态
gitlab-ctl status
# 查看gitlab运行日志

# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki

## docker相关
# 查看所有容器
docker ps -a
# 查看正在运行的容器
docker ps
# 删除容器
docker ps -a # 找到要删除的容器id
docker rm -f 容器id
# 获取容器的源数据
docker inspect 容器id
# 进入到gitlab中
docker exec -it gitlab
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java微服务架构l零从基础到精通高清视频教程全套 第1章 微服务简介 001构建单体应用 002微服务解决复杂问题 003微服务的优点 004微服务的缺点 第2章 Linux使用 005Linux 简介 006Linux 与 Windows 比较 007安装 Linux 008Linux 远程控制管理 009Linux 目录结构 010操作文件目录 011系统管理命令 012开关机命令 013压缩命令 014Linux 编辑器 015修改数据源 016常用 APT 命令 017Linux 用户和组管理 018查看目录和文件的权限 019更改操作权限 020安装 Java 021安装 Tomcat 022安装 MySQL 023部署项目 第3章 Docker实战开发 042设置镜像标签 024Docker 简介 025Docker 功能特点 026Docker 系统架构 027Docker 安装 028第一个 Docker 应用程序 029运行交互式的容器 030后台运行与停止容器 031Docker 客户端帮助命令 032运行 Web 容器 033指定 Web 容器映射端口 034查看容器进程 035查看容器状态 036批量移除容器 037Docker Hub 镜像仓库 038获取镜像 039查找镜像 040更新镜像 041创建和移除镜像 043安装 Tomcat 044安装 MySQL 045部署项目 046数据卷简介 047创建数据卷 048备份数据卷 049恢复数据卷 050Docker Compose-安装 051Docker Compose-使用 第4章 使用 GitLab 托管代码 055GitLab简介 056GitLab 安装 057GitLab 设置 058GitLab 账户管理 059GitLab 使用-HTTP 060GitLab 使用-SSH 第5章 Spring Boot 061Spring简史 062 Spring Boot 简介 063 第一个 Spring Boot 应用程序 064 Spring Boot 自定义 Banner 065 Spring Boot 配置 066 Spring Boot Starter POM 067 Spring Boot 日志配置 第6章 集成 MyBatis 068Thymeleaf简介 069 第一个 Thymeleaf 模板页 070 集成 Druid 数据源 071 集成 TkMyBatis 简化 MyBatis 操作 072 集成 PageHelper 分页插件 073 使用 MyBatis Maven Plugin 自动生成代码 074 集成 MyBatis-测试查询 第7章 项目实战 075项目简介 076 创建依赖管理项目 077 创建通用工具项目 078 创建数据库管理项目 079 创建领域模型项目 080 创建管理后台接口项目 081 创建管理后台实现项目 082 为什么要使用 Dubbo 083 再谈微服务-背景介绍 084 再谈微服务-面向服务架构与微服务架构 085 再谈微服务-服务框架对比 1 085 再谈微服务-服务框架对比 2 086 再谈微服务-RPC 对比 REST 087 Dubbo 简介 088 Dubbo 服务治理 089 Dubbo 组件角色 090 Zookeeper 简介 091 Zookeeper 应用举例 092 Zookeeper 集群模式 093 Dubbo Admin 管理控制台 094 系统后台管理-修改所需依赖 095 服务提供者 096 服务消费者 097 测试 JRebel 热部署 098 登录页 099 首页1 099 首页2 100 使用 thymeleaf 模板 101 使用 iframe 展示功能页 102 频道管理功能-列表页布局 103 新增频道 104 频道列表 105 选择父级频道1 105 选择父级频道2 106 表单页的树控件 107 列表页的树表格 108 FastDFS 分布式文件系统简介 109 FastDFS 分布式文件系统安装 110 文章管理功能-改造树控件1 110文章管理功能-改造树控件2 111 文章管理功能-新增文章 112 文章管理功能-使用 PageHelper 进行分页查询 113 文章管理功能-前端 Datatable 控件分页处理1 113 文章管理功能-前端 Datatable 控件分页处理2 114 文章管理功能-补充内容(关于 PageHelper 的依赖问题) 115 文章管理功能-Thymeleaf 自定义标签1 115 文章管理功能-Thymeleaf 自定义标签2 116 文章管理功能-实现字典标签1 116 文章管理功能-实现字典标签2 117 文章管理功能-实现 FastDFS 客户端 118 文章管理功能-前端 Dropzone 上传图片1 118 文章管理功能-前端 Dropzone 上传图片2 119 文章管理功能-前端 WangEditor 上传图片 120 HBuilder 客户端-创建移动 APP 项目 121 HBuilder 客户端-真机运行项目 122 HBuilder 客户端-HBuilder 的基本使用 123 HBuilder 客户端-使用自定义图标 124 HBuilder 客户端-HBuilder Manifest 文件说明 125 HBuilder 客户端-实现底部选项卡切换1 125 HBuilder 客户端-实现底部选项卡切换2 126 HBuilder 客户端-HBuilder 自定义代码块 127 HBuilder 客户端-打开新窗口 128 使用 API Gateway 统一服务接口-API Gateway 简介 129 使用 API Gateway 统一服务接口-创建频道服务 130使用 API Gateway 统一服务接口-创建文章服务 131 使用 API Gateway 统一服务接口-创建 API Gateway 132 使用 API Gateway 统一服务接口-Swagger2 生成接口文档 133 使用 API Gateway 统一服务接口-完善 API 网关代码 134 客户端与服务端通信-客户端请求服务端 135 客户端与服务端通信-服务端封装响应结构 136 客户端与服务端通信-客户端封装数据结构 137 客户端与服务端通信-客户端封装 Ajax 请求1 137 客户端与服务端通信-客户端封装 Ajax 请求2 138 客户端与服务端通信-解决跨域问题 139 Redis 为数据添加缓存-Redis HA 简介 140 Redis 为数据添加缓存-Redis Sentinel 高可用集群部署 141 Redis 为数据添加缓存-Redis 客户端的使用 142 Redis 为数据添加缓存-Spring Boot 集成 Redis1 142 Redis 为数据添加缓存-Spring Boot 集成 Redis2 143 HBuilder 客户端-前端功能编码演示01(可略过) 144 HBuilder 客户端-前端功能编码演示02(可略过) 145 HBuilder 客户端-前端功能编码演示03(可略过)1 145 HBuilder 客户端-前端功能编码演示03(可略过)2 146 HBuilder 客户端-前端功能编码演示04(可略过)1 146 HBuilder 客户端-前端功能编码演示04(可略过)2 147 HBuilder 客户端-前端功能编码演示05(可略过)1 147 HBuilder 客户端-前端功能编码演示05(可略过)2 148 Solr 全文搜索引擎-Solr 简介 149 Solr 全文搜索引擎-Solr 服务器部署 150 Solr 全文搜索引擎-Solr 配置字段域 151 Solr 全文搜索引擎-Solr 维护功能 152 Solr 全文搜索引擎-Solr 查询与高亮显示 153 Solr 全文搜索引擎-Spring Boot 集成 Solr 154 Solr 全文搜索引擎-完成测试类 CRUD 功能 155 Solr 全文搜索引擎-实现搜索接口 156 Spring Boot 启用 Profile 157 Docker 私服搭建 158 项目的容器部署1 159 项目的容器部署2.1 159 项目的容器部署2.2 160 项目的容器部署3.1 160 项目的容器部署3.2 161 基本概念 162 操作流程 163 GitLab CI

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值