如何在docker镜像上运行ArangoDB 3.1自动升级到3.2

时间:2017-10-02 08:30:35

标签: docker arangodb

当尝试将ArangoDB 3.1的docker容器升级到3.2时,我遇到了需要升级的数据库的问题:

FATAL Database '_system' needs upgrade. Please start the server with the --database.auto-upgrade option FATAL Database '_system' upgrade failed. Please inspect the logs from the upgrade procedure

我如何实际通过该设置?我尝试在command: 'arangod --database.auto-upgrade true中设置docker-compose.yml,但这没有任何效果。

1 个答案:

答案 0 :(得分:4)

我也在我的系统中使用docker-compose,其中arangodb在服务名称44 74 65 6d 70下运行,如下所示:

database

在升级之前,我还必须停止我的系统。 我刚刚使用以下步骤升级了我的arangodb容器(3.1.3 => 3.2.5)

  1. version: '2.1' services: database: image: arangodb:3.1.3 ports: - 8529:8529 volumes: - /opt/my-system/Database/arangodb:/var/lib/arangodb3 - /opt/my-system/Database/arangodb-apps:/var/lib/arangodb3-apps restart: always healthcheck: test: curl -f my-system:8529/_api/version || exit 1 . . . other services =>获取要升级到的图像
  2. docker pull arangodb:3.2.5 =>停止使用数据库的系统
  3. 备份数据库卷(我只是制作/ opt / my-system / Database文件夹的副本)
  4. docker-compose stop =>删除运行旧arangodb的容器
  5. 使用新的arangodb image =>更新docker-compose.yml文件因此docker-compose rm -f database变为image:arangodb:3.1.3
  6. image:arangodb:3.2.5 =>这将创建运行v3.2.5的数据库容器,升级数据库文件,然后在完成后删除容器。
  7. docker-compose run --rm database arangod --database.auto-upgrade =>启动升级后的数据库以查看是否一切正常
  8. docker-compose up -d database =>启动系统的其余部分,现在使用已升级的数据库
  9. 如果我在升级期间遇到错误,我可以轻松回滚到v3.1.3,因为我总是保留prev image和数据库文件。 希望这有帮助!