当前位置:首页 > 编程笔记 > 正文
已解决

gitlab docker部署,备份,恢复。附踩坑记录

来自网友在路上 169869提问 提问时间:2023-10-14 18:01:31阅读次数: 69

最佳答案 问答题库698位专家为你答疑解惑

本次安装在CentOS7下进行

1、安装yum

检查是否已经安装yum

yum --version

如果未安装

sudo yum install -y yum-utils

添加镜像源:

  • 国外镜像源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 阿里镜像源:yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/decker-ce.repo

2、安装docker

  • 安装最新版本(默认):yum install docker-ce
  • 安装指定版本:yum install docker-ce-20.10.9-3.el7

配置开机启动:

  • 启动docker:systemctl start docker
  • 配置开机启动:systemctl enable docker
  • 查看docker版本:docker version

3、docker部署gitlab

拉取最新gitlab镜像

方式一:直接使用最新版本镜像

  • docker pull gitlab/gitlab-ce:latest

方式二:使用指定版本镜像,这里使用了13.10.0版本 (教程使用的此方式)

  • docker pull gitlab/gitlab-ce:13.10.0-ce.0

创建映射文件目录

# 映射配置文件夹
mkdir -p /home/gitlab/conf
# 映射日志文件夹
mkdir -p /home/gitlab/logs
# 映射数据文件夹
mkdir -p /home/gitlab/data

运行docker容器

最好不要使用80端口,使用了也没问题后面会教你更改

 后面会改成 --publish 50055:50055  \
# 主机名、端口映射、目录映射、gitlab版本 需自行修改
sudo docker run --detach \--hostname ip地址 \--publish 50055:80  \--name gitlab \--restart always \--volume /data/gitlab/conf:/etc/gitlab \--volume /data/gitlab/logs:/var/log/gitlab \--volume /data/gitlab/data:/var/opt/gitlab \--shm-size 256m \--privileged=true gitlab/gitlab-ce:13.10.0-ce.0
一劳永逸版
sudo docker run --detach \--hostname ip地址 \--publish 50055:50055  \--name gitlab \--restart always \--volume /data/gitlab/conf:/etc/gitlab \--volume /data/gitlab/logs:/var/log/gitlab \--volume /data/gitlab/data:/var/opt/gitlab \--shm-size 256m \--privileged=true gitlab/gitlab-ce:13.10.0-ce.0修改gitlab服务端口号:vim /etc/gitlab/gitlab.rbexternal_url 'http://ip:50055'使用命令进行更新配置:gitlab-ctl reconfigure

查看防火墙

查看开放的端口号
firewall-cmd --list-all开放指定端口
sudo firewall-cmd --add-port=50055/tcp --permanent重启防火墙(设置完一定要重启防火墙):
firewall-cmd --reload现在外部就可以访问这些端口了

4、备份

注意这里gitlab的版本,后面恢复是要保证版本一致的

# 查看容器id
docker ps# 进入容器 示例:docker exec -it -i 4c97d29eee9b /bin/bash
docker exec -it -i <这里是容器id> /bin/bash# 执行备份命令
gitlab-rake gitlab:backup:create

备份文件可在 /data/gitlab/data/backups找到

5、恢复

要注意恢复版本要和备份版本保持一致

# 把第一台服务器备份的 xxx_gitlab_backup.tar 文件拷贝到新gitlab的/data/gitlab/data/backups目录中# 进入容器 示例:docker exec -it -i 4c97d29eee9b /bin/bash
docker ps
docker exec -it -i <这里是容器id> /bin/bash
# 修改权限
chmod 777 /var/opt/gitlab/backups/1682571554_2023_04_27_13.5.4_gitlab_backup.tar
chown -R git:git /var/opt/gitlab/backups/1682571554_2023_04_27_13.5.4_gitlab_backup.tar# 恢复备份文件前,先停止容器内相关数据连接服务
gitlab-ctl stop puma
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq# 最好修改下数据权限,不然恢复容易报错
# 修改postgresql配置
vi /var/opt/gitlab/postgresql/data/postgresql.conf
# 如下修改:
listen_addresses = '*'# 修改pg_hba配置
vi /var/opt/gitlab/postgresql/data/pg_hba.conf
# 最后添加:
local   all         all                               trust
host    all         all                               127.0.0.1/32 trust# 重启gitlab服务
gitlab-ctl restart# 修改gitlab账号为超级用户
su - gitlab-psql
/opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production
ALTER USER gitlab WITH SUPERUSER;
\q
exit# 恢复备份文件前,先停止容器内相关数据连接服务
gitlab-ctl stop puma
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq# 恢复备份, 后面的数字是 1682571554_2023_04_27_13.5.4_gitlab_backup.tar文件的前面一部分
gitlab-rake gitlab:backup:restore BACKUP=1682571554_2023_04_27_13.5.4# 重启服务
gitlab-ctl restart# 拷贝配置文件
cp gitlab-secrets.json /data/gitlab/conf/
cp gitlab.rb /data/gitlab/conf/# 重启服务
gitlab-ctl restart

修改服务端口号

由于使用的80端口映射,导致gitlab克隆没有端口号,拉不了代码。

解决方法

1、修改服务的端口号
修改gitlab服务端口号:vim /etc/gitlab/gitlab.rb

external_url 'http://ip:50055'使用命令进行更新配置:gitlab-ctl reconfigure

2、进入gitlab容器
修改配置文件gitlab.yml,修改host 与上面.rb文件修改的一致

cd /opt/gitlab/embedded/service/gitlab-rails/config

在这里插入图片描述
重启服务

gitlab-ctl restart

3、修改docker容器映射端口,也就是上面docker run 使用的80端口

在这里插入图片描述
修改 hostconfig.json 文件,找到如下配置,可以添加想要开放的端口

"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"80"}],"8088/tcp":[{"HostIp":"","HostPort":"8088"}]
}

修改 config.v2.json 文件,找到如下配置,可以添加想要开放的端口

"ExposedPorts":{"80/tcp":{},"8088/tcp":{}}

注:并不需要修改Ports,只有在你没有stop容器时,Ports才会有值,如果关闭了容器,就是null。当然如果你修改了也无所谓,因为重启容器后,就会被刷新。

重启docker和容器即可
重启docker命令如下:

systemctl start docker
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"gitlab docker部署,备份,恢复。附踩坑记录":http://eshow365.cn/6-19498-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!