You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署的Directus实例升级至10.11.1失败,求解决方法

解决Directus Docker实例升级后崩溃无法执行迁移的问题

问题背景

在DigitalOcean托管的4个Directus v10.10.4实例升级至v10.11.1后崩溃,返回502错误,无法通过docker exec进入容器执行官方要求的数据库迁移命令。


解决方案

方法1:直接用新版本镜像执行迁移(无需启动完整服务)

这是最直接的处理方式,无需启动故障容器,直接挂载配置文件运行迁移命令:

  1. 停止当前故障容器:
    docker stop my.domain.tld
    
  2. 找到宿主机上该实例的.env配置文件路径(比如/opt/directus/instance-1/.env),执行迁移命令:
    docker run --rm \
      -v /opt/directus/instance-1/.env:/directus/.env \
      directus/directus:10.11.1 \
      npx directus database migrate:latest
    
  3. 迁移完成后,启动新版本容器:
    docker start my.domain.tld
    

如果使用Docker Compose部署,步骤更简洁:

  1. 进入Compose文件所在目录,停止服务:
    docker-compose stop directus
    
  2. 执行迁移:
    docker-compose run --rm directus npx directus database migrate:latest
    
  3. 启动新版本服务:
    docker-compose up -d
    

方法2:回滚至旧版本,再完成迁移升级

若方法1遇到配置挂载问题,可先回滚到可用版本:

  1. 停止故障容器:
    docker stop my.domain.tld
    
  2. 启动v10.10.4版本容器(确保数据卷和配置挂载与之前一致):
    docker run -d \
      --name my.domain.tld \
      -v /opt/directus/instance-1/.env:/directus/.env \
      -v /opt/directus/instance-1/uploads:/directus/uploads \
      directus/directus:10.10.4
    
    (Docker Compose用户修改Compose文件的镜像版本为10.10.4,执行docker-compose up -d)
  3. 确认服务正常访问后,重复方法1的迁移步骤,完成后启动v10.11.1容器。

后续升级注意事项

  • 升级前务必备份数据库(DigitalOcean可使用快照或数据库自带备份工具)
  • 严格遵循Docker部署的升级流程:先拉取新版本镜像→停止旧服务→执行数据库迁移→启动新版本服务,避免直接换镜像启动导致崩溃
  • 4个实例逐个处理,避免同时操作引发资源冲突

内容的提问来源于stack exchange,提问作者Robert Wildling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 05:52:41