返回

gitlab实现数据备份、还原及升级

后端

前提条件

  • Gitlab 8.5.8 版本。
  • Docker 和 Docker Compose 已安装。
  • 新服务器。
  • 用于备份和还原的存储空间。

备份

数据库备份

  1. 停止 Gitlab 服务。
docker-compose down
  1. 备份数据库。
docker exec -it gitlab_postgres pg_dump -U gitlab -d gitlab > /path/to/gitlab_database_backup.sql

文件备份

  1. 备份 Gitlab 配置文件。
docker cp gitlab_gitlab:/etc/gitlab /path/to/gitlab_config_backup
  1. 备份 Gitlab 日志文件。
docker cp gitlab_gitlab:/var/log/gitlab /path/to/gitlab_logs_backup
  1. 备份 Gitlab 数据目录。
docker cp gitlab_gitlab:/var/opt/gitlab /path/to/gitlab_data_backup

配置备份

  1. 备份 Gitlab 运行环境变量。
docker inspect gitlab_gitlab | grep Environment | cut -d'"' -f4 > /path/to/gitlab_env_backup
  1. 备份 Gitlab 运行挂载卷。
docker inspect gitlab_gitlab | grep Volumes | cut -d'"' -f4 > /path/to/gitlab_volumes_backup
  1. 备份 Gitlab 运行网络。
docker inspect gitlab_gitlab | grep Networks | cut -d'"' -f4 > /path/to/gitlab_networks_backup

还原

数据库还原

  1. 启动 Gitlab 服务。
docker-compose up -d
  1. 恢复数据库。
docker exec -it gitlab_postgres psql -U gitlab -d gitlab < /path/to/gitlab_database_backup.sql

文件还原

  1. 恢复 Gitlab 配置文件。
docker cp /path/to/gitlab_config_backup gitlab_gitlab:/etc/gitlab
  1. 恢复 Gitlab 日志文件。
docker cp /path/to/gitlab_logs_backup gitlab_gitlab:/var/log/gitlab
  1. 恢复 Gitlab 数据目录。
docker cp /path/to/gitlab_data_backup gitlab_gitlab:/var/opt/gitlab

配置还原

  1. 恢复 Gitlab 运行环境变量。
cat /path/to/gitlab_env_backup | xargs -I{} docker run --rm --env {} gitlab_gitlab echo
  1. 恢复 Gitlab 运行挂载卷。
cat /path/to/gitlab_volumes_backup | xargs -I{} docker run --rm --volume {} gitlab_gitlab echo
  1. 恢复 Gitlab 运行网络。
cat /path/to/gitlab_networks_backup | xargs -I{} docker run --rm --network {} gitlab_gitlab echo

升级

  1. 停止 Gitlab 服务。
docker-compose down
  1. 升级 Gitlab 镜像。
docker-compose pull
  1. 启动 Gitlab 服务。
docker-compose up -d

结论

您现在已经成功地备份、还原和升级了 Gitlab。您现在可以继续使用 Gitlab 来管理您的代码库了。