重新启动Docker桌面后丢失了Gitlab-CI备份

时间:2019-09-05 14:57:31

标签: docker gitlab backup

我在Windows pc上安装了一个docker桌面。这样,我就在一个Docker容器上自托管了gitlab。今天,我尝试通过键入以下命令来备份gitlab:

docker exec -t <my-container-name> gitlab-backup create

运行此命令后,备份成功,并看到一条消息,表明备份已完成。然后,我重新启动了Docker桌面,并在容器启动时等待容器启动,我访问了gitlab接口,但看到了一个新的gitlab实例。

然后我输入以下命令来恢复备份:

docker exec -it <my-container-name> gitlab-backup restore

但是看到的消息是:

在/ var / opt / gitlab / backups

中找不到备份

请确保文件名以_gitlab_backup.tar

结尾

原因是我在gitlab官方网站上看到了这些命令,所以我做错了这是什么原因。

我在docker-compose.yml文件中有此文件

version: "3.6" 
services:
  web:
    image: 'gitlab/gitlab-ce'
    container_name: 'gitlab'
    restart: always
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost:9090'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    networks:
      - gitlab-network
    ports:
      - '80:80'
      - '443:443'
      - '9090:9090'
      - '2224:22'
    volumes:
      - '/srv/gitlab/config:/etc/gitlab'
      - '/srv/gitlab/logs:/var/log/gitlab'
      - '/srv/gitlab/data:/var/opt/gitlab'

networks:
  gitlab-network:
    name: gitlab-network

我使用此命令来运行容器:

docker-compose up --build --abort-on-container-exit

2 个答案:

答案 0 :(得分:0)

如果您是使用Volumes启动容器的,请尝试查看C:\ProgramData\docker\volume进行备份。

备份通常位于容器内的/var/opt/gitlab/backups上。因此,希望您将/var/opt/gitlab映射到卷或绑定安装。

答案 1 :(得分:0)

您是否尝试提供备份文件的名称(如omnibus安装)?在Docker中还原备份后,我基本上会使用omnibus指令,但是要使用docker exec来执行。这是我从笔记中使用的命令。

docker exec -it gitlab gitlab-ctl stop unicorn  
docker exec -it gitlab gitlab-ctl stop sidekiq  
docker exec -it gitlab gitlab-rake gitlab:backup:restore BACKUP=1541603057_2018_11_07_10.3.4 
docker exec -it gitlab gitlab-ctl start  
docker exec -it gitlab gitlab-rake gitlab:check SANITIZE=true

似乎他们在某个时候添加了gitlab-backup命令,因此您可以使用它代替gitlab-rake。