Docker Compose运行SurrealDB失败,提示local日志驱动无可用日志
解决SurrealDB 1.0.0稳定版Docker Compose日志警告问题
以下是针对该问题的具体排查和解决步骤:
- 调整挂载目录权限
SurrealDB 1.0.0稳定版镜像默认使用非root用户运行,若本地./db目录权限为root所有,容器内用户无法读写数据库文件或日志,导致启动失败无日志输出。执行以下命令修改目录权限:
sudo chown -R 1000:1000 ./db
修改后重新启动容器即可。若想临时验证权限问题,可在docker-compose.yml的example-db服务中添加user: root配置,启动后若正常则说明是权限问题。
- 显式指定日志驱动
在docker-compose.yml的服务配置中添加日志驱动设置,替换默认的local驱动为json-file,确保日志能正常输出:
example-db: <<: *example-app image: surrealdb/surrealdb:latest command: start --log trace --user ${DB_USER} --pass ${DB_PASS} file:/db/mydatabase.db volumes: - ./db:/db ports: - ${DATABASE_PORT}:8000 networks: - example_network logging: driver: "json-file" options: max-size: "10m" max-file: "3"
- 直接运行容器排查错误
跳过Docker Compose,用docker run直接启动容器,获取更直观的启动输出,排查命令或镜像本身的问题:
docker run -it --rm -v $(pwd)/db:/db -p 8000:8000 surrealdb/surrealdb:latest start --log trace --user ${DB_USER} --pass ${DB_PASS} file:/db/mydatabase.db
替换命令中的环境变量为实际值,运行后可直接看到容器启动的详细日志,定位具体错误。
- 确认镜像版本正确性
显式指定1.0.0标签拉取镜像,避免latest标签缓存导致版本不符:
image: surrealdb/surrealdb:1.0.0
执行以下命令重新拉取镜像并启动:
docker-compose pull example-db && docker-compose up -d example-db
内容的提问来源于stack exchange,提问作者MRF
相关产品推荐
相关产品推荐

