如何在Docker映像上将ArangoDB 3.1自动升级到3.2

Ner*_*too 1 arangodb docker

当尝试使用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,但没有任何效果。

小智 6

我还将docker-compose用于我的系统,其中arangodb在服务名称下运行,database如下所示:

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

升级之前,我还必须停止系统。我已经按照以下步骤升级了arangodb容器(3.1.3 => 3.2.5)

  1. docker pull arangodb:3.2.5 =>获取要升级到的映像
  2. docker-compose stop =>停止使用数据库的系统
  3. 备份数据库卷(我只是复制/ opt / my-system / Database文件夹)
  4. docker-compose rm -f database =>删除运行旧的arangodb的容器
  5. 使用新的arangodb映像更新docker-compose.yml文件=>因此 image:arangodb:3.1.3变为image:arangodb:3.2.5
  6. docker-compose run --rm database arangod --database.auto-upgrade =>这将创建运行v3.2.5的数据库容器,升级数据库文件,然后在完成后删除该容器。
  7. docker-compose up -d database =>启动升级的数据库,看一切是否正常
  8. docker-compose start =>启动系统的其余部分,该系统现在使用升级后的数据库

如果我在升级过程中出错,则可以很容易地回滚到v3.1.3,因为我始终保留上一个映像和数据库文件。希望这可以帮助!