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

Docker Compose部署Directus 7后创建用户命令无响应求助

解决Directus 7 Docker部署中install命令挂起的问题

我之前也碰到过Directus 7 Docker部署时install命令挂起的情况,大概率是容器和数据库的连接问题或者网络配置的小坑,给你几个亲测有效的解决办法:

方法1:先确保数据库容器完全就绪再执行install

Directus的installer需要依赖数据库服务,如果数据库还在初始化(比如PostgreSQL/MariaDB第一次启动要初始化数据),install命令就会一直等待连接,导致挂起。

步骤:

  • 先启动所有服务并后台运行:
    docker-compose up -d
    
  • 查看数据库服务状态,确认它处于Up状态:
    docker-compose ps
    
    看到db服务的状态是Up (healthy)或者Up后,再执行后续的install操作。

方法2:进入web容器内部执行install命令

直接运行docker-compose run installer有时候会因为网络隔离或者容器启动顺序问题导致无法连接数据库,换个更可靠的方式:进入已经运行的web容器执行install:

  • 进入web容器的bash终端:
    docker-compose exec web bash
    
  • 在容器内部执行install命令:
    ./installer install --email your@email.com --password your_secure_password
    
    这个方法能确保installer使用和web服务相同的网络配置,直接访问到数据库服务,大概率能解决挂起问题。

方法3:检查docker-compose.yml的数据库配置

确认你的docker-compose.yml里Directus服务的环境变量正确指向数据库服务,比如:

services:
  web:
    image: directus/directus:7
    environment:
      DB_HOST: db  # 这里要和你的数据库服务名完全一致
      DB_PORT: 3306
      DB_NAME: directus
      DB_USER: directus
      DB_PASSWORD: directus
    # 其他配置...
  db:
    image: mariadb:10.4
    # 数据库相关配置...

如果DB_HOST写错了(比如写成localhost),installer就会无法连接数据库,导致一直挂起等待。

验证用户创建成功

执行完install命令后,你可以:

  • 访问Directus后台(默认是http://localhost:8080/admin),用你设置的邮箱和密码登录
  • 或者进入数据库容器查看users表,确认新增了用户记录:
    docker-compose exec db mysql -u directus -p
    # 输入密码后执行
    use directus;
    select * from users;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:05:56