【问题标题】:Gitlab-CI backup lost by restarting Docker desktop重启 Docker 桌面导致 Gitlab-CI 备份丢失
【发布时间】:2019-09-05 14:57:31
【问题描述】:

我的 Windows 电脑上安装了一个 docker 桌面。在那,我在一个 docker 容器上自托管了 gitlab。今天我尝试通过输入以下命令来备份我的 gitlab:

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

运行此命令后,备份成功,并看到备份完成的消息。然后我重新启动了我的 docker 桌面,我等待容器启动,当容器启动时我访问了 gitlab 界面,但我看到了一个新的 gitlab 实例。

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

docker exec -it &lt;my-container-name&gt; 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

【问题讨论】:

    标签: docker gitlab backup


    【解决方案1】:

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

    备份通常位于容器内:/var/opt/gitlab/backups。所以希望您将/var/opt/gitlab 映射到卷或绑定挂载。

    【讨论】:

    • 我试图找到这个路径,但在我的窗口中找不到它。
    • 你能不能给出你用来启动容器的docker run命令或者docker-compose.yml
    • 我现在已经在问题中添加了撰写文件和 docker run 命令,请阅读。
    • 首先,尝试docker exec -it &lt;container_name&gt; bashls /var/opt/gitlab/backups。有 tar 文件吗?
    • 我已经尝试过了,但得到了这个ls: cannot access '/var/opt/gitlab/backups': No such file or directory
    【解决方案2】:

    您是否尝试提供备份文件的名称,如综合安装?当我在 Docker 中恢复备份时,我基本上使用综合指令,但使用 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。

    【讨论】:

      猜你喜欢
      • 2016-12-11
      • 1970-01-01
      • 2022-01-18
      • 2021-02-17
      • 2020-02-02
      • 2018-06-28
      • 2019-09-21
      • 2021-10-29
      • 1970-01-01
      相关资源
      最近更新 更多