Docker Compose部署Directus 7后创建用户命令无响应求助
解决Directus 7 Docker部署中install命令挂起的问题
我之前也碰到过Directus 7 Docker部署时install命令挂起的情况,大概率是容器和数据库的连接问题或者网络配置的小坑,给你几个亲测有效的解决办法:
方法1:先确保数据库容器完全就绪再执行install
Directus的installer需要依赖数据库服务,如果数据库还在初始化(比如PostgreSQL/MariaDB第一次启动要初始化数据),install命令就会一直等待连接,导致挂起。
步骤:
- 先启动所有服务并后台运行:
docker-compose up -d - 查看数据库服务状态,确认它处于
Up状态:
看到db服务的状态是docker-compose psUp (healthy)或者Up后,再执行后续的install操作。
方法2:进入web容器内部执行install命令
直接运行docker-compose run installer有时候会因为网络隔离或者容器启动顺序问题导致无法连接数据库,换个更可靠的方式:进入已经运行的web容器执行install:
- 进入web容器的bash终端:
docker-compose exec web bash - 在容器内部执行install命令:
这个方法能确保installer使用和web服务相同的网络配置,直接访问到数据库服务,大概率能解决挂起问题。./installer install --email your@email.com --password your_secure_password
方法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
相关产品推荐
相关产品推荐

