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
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值