当前位置:   article > 正文

Docker部署GitLab代码管理平台_docker gitlab部署

docker gitlab部署

官方地址:https://docs.gitlab.com/ee/install/docker.html

1.创建存放gitlab数据的目录

[root@k8s-master ~]# mkdir /home/fands
[root@k8s-master ~]# mkdir /home/fands/data
  • 1
  • 2

2.docker启动gitlab容器

如下是docker启动gitlab的命令,可以将其写到sh文件中方便后续重建;

#gitlab-docker-run.sh
GITLAB_HOME=/home/fands/data/gitlab
docker run -itd \
  --hostname gitlab.ctnrs.com \
  --publish 443:443 \
  --publish 88:80 \
  --publish 2222:22 \
  --name=gitlab \
  --restart=always \
  -volume $GITLAB_HOME/config:/etc/gitlab \
  -volume $GITLAB_HOME/logs:/var/log/gitlab \
  -volume $GITLAB_HOME/data:/var/opt/gitlab \
  gitlab/gitlab-ce:13.12.5-ce.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • GITLAB_HOME:本地存放gitlab数据的目录
  • –hostname:设置主机名
  • –publish 443:443:将gitlab容器的443端口映射到本地的443端口
  • –publish 88:80:同理将容器的80端口映射到本地的88端口
  • –publish 2222:22:同理将容器的22端口映射到本地的2222端口(22端口用作于gitlab的ssh git下载代码)
  • –name:容器名称
  • –restart=always:容器重启策略,always代表总是重启
  • -volume $GITLAB_HOME/config:/etc/gitlab:数据持久化,将容器内的gitlab的数据目录/etc/gitlab 持久化到 本地存放gitlab数据的目录里
  • -volume $GITLAB_HOME/logs:/var/log/gitlab:数据持久化,将容器内的gitlab的数据目录/var/log/gitlab 持久化到 本地存放gitlab数据的目录里
  • -volume $GITLAB_HOME/data:/var/opt/gitlab:数据持久化,将容器内的gitlab的数据目录/var/opt/gitlab 持久化到 本地存放gitlab数据的目录里

在这里插入图片描述

然后访问使用宿主机IP和88端口去访问gitlab,我这里是http://10.8.0.7:88/,gitlab启动时间会很长,需要3-5分钟大家耐心等待…

安装完后需要设置gitlab的管理员用户密码
在这里插入图片描述

登陆gitlab
在这里插入图片描述

3.修改gitlab的下载代码的路径地址

默认为hostname主机名
在这里插入图片描述
示例修改为:gitlab.study.com

#修改gitlab主配置文件(目录为持久化到本地的gitlab数据目录)
#/home/fands/data/gitlab/config/gitlab.rb
修改:
external_url 'http://gitlab.study.com'
  • 1
  • 2
  • 3
  • 4

然后保存重启gitlab容器

[root@bogon ~]# docker ps 
CONTAINER ID   IMAGE                           COMMAND             CREATED          STATUS                    PORTS                                                                                                             NAMES
069d710325d7   gitlab/gitlab-ce:13.12.5-ce.0   "/assets/wrapper"   49 minutes ago   Up 22 minutes (healthy)   0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:2222->22/tcp, :::2222->22/tcp, 0.0.0.0:88->80/tcp, :::88->80/tcp   gitlab
[root@bogon ~]# docker restart gitlab
  • 1
  • 2
  • 3
  • 4

再重新看下下载代码的地址
在这里插入图片描述

4.备份

docker方式部署的gilab备份及其的简单,直接将容器持久化到本地的gitlab数据目录备份即可,或直接将这个目录拷贝到其他机器上直接docker run启动 都是没有问题的,不会丢失数据!

例如:我这里的数据目录为:/home/fands/data/gitlab

自动备份脚本如下

#bak.sh
#!/bin/bash
set -e 
#持久化到本地的gitlab数据目录
GITLAB_DIR=/home/fands/data/

BACKUP_DIR=/root/backup

BACKUP_TIME=`date +%Y_%m_%d`

if [ ! -d "$BACKUP_DIR" ];then
  echo "备份目录"$BACKUP_DIR"不存在,请创建"
  exit 1
else 
  echo "开始执行备份"
  cd $GITLAB_DIR
  tar -zcf $BACKUP_DIR/gitlab_bak_"$BACKUP_TIME".tar.gz gitlab  2>/dev/null
  if [ $? == 0 ];then
    echo "备份成功"
    echo "备份文件为:$BACKUP_DIR/gitlab_bak_"$BACKUP_TIME".tar.gz"
  else 
    echo "备份失败"
    exit 1
  fi
fi
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

crontab定时执行

0 3 * * * sh /root/bak.sh 1>>/root/bak_logs/gitlab_bak.log 2>&1
  • 1

5.恢复

上面实现了每天进行备份gitlab,如若恢复的话,直接解压最近的备份文件,接着覆盖gitlab的持久化目录 然后重启gitlab容器即可;

#解压备份文件
[root@bogon backup]# tar -zxf gitlab_bak_2024_04_18.tar.gz
[root@bogon backup]# ll 
总用量 22820
drwxr-xr-x. 5 root root       44 418 14:13 gitlab
-rw-r--r--. 1 root root 23367068 418 16:58 gitlab_bak_2024_04_18.tar.gz

#先将当前使用的数据目录重命名
[root@bogon backup]# mv /home/fands/data/gitlab /home/fands/data/gitlab.bak 

#将解压好的备份目录移动到备份目录下
[root@bogon backup]# mv gitlab /home/fands/data/

#重启gitlab容器
[root@bogon backup]# docker ps 
[root@bogon backup]# docker restart gitlab
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/758799
推荐阅读
相关标签
  

闽ICP备14008679号