-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
Description
-
README文件中的Docker命令存在误导:当前命令未修改databaseurl参数,导致数据库文件始终无法正确传递和使用。需修正README中的相关Docker命令,明确databaseurl配置流程。
-
Docker Compose目前仅依赖本地镜像编辑,并未直接连接到已推送至远程仓库的镜像。建议优化Docker Compose配置,使其支持拉取远程镜像,提升部署与协作效率。
关键参考片段与代码
README.md & README.zh.md 演示段落(未包括DATABASE_URL相关说明)
Lines 95 to 147 in 872d765
| #### Using Docker Compose | |
| ```bash | |
| # Start service (creates and runs container) | |
| docker-compose -f docker/docker-compose.yml up -d | |
| # View logs | |
| docker-compose -f docker/docker-compose.yml logs -f zenblock | |
| # Stop service | |
| docker-compose -f docker/docker-compose.yml down | |
| ``` | |
| #### Using Docker Commands | |
| ```bash | |
| # Build image | |
| docker build -f docker/Dockerfile -t zenblock . | |
| # Run container with data persistence | |
| docker run -d \ | |
| --name zenblock \ | |
| -p 3000:3000 \ | |
| -v ./zenblock-data:/app/data \ | |
| zenblock | |
| # View logs | |
| docker logs -f zenblock | |
| # Stop and remove container | |
| docker stop zenblock && docker rm zenblock | |
| ``` | |
| #### Docker Configuration Details | |
| The Docker setup includes: | |
| - ✅ **Automatic database migration** on startup | |
| - ✅ **Data persistence** - SQLite database stored in `./zenblock-data/` on your host | |
| - ✅ **Health checks** - Container monitors application health every 30s | |
| - ✅ **Production optimization** - Uses Next.js standalone output for minimal image size | |
| - ✅ **Auto-restart** - Container restarts automatically on failure (unless-stopped policy) | |
| **Data Location**: | |
| - Database files are stored in `./zenblock-data/dev.db` on your local machine | |
| - You can backup/restore by copying this directory | |
| - Data persists even if you remove and recreate containers | |
| **Access Application**: | |
| - 🇨🇳 Chinese: http://localhost:3000/zh | |
| - 🇬🇧 English: http://localhost:3000/en | |
| --- | |
Lines 95 to 146 in 872d765
| #### 使用 Docker Compose | |
| ```bash | |
| # 启动服务(创建并运行容器) | |
| docker-compose -f docker/docker-compose.yml up -d | |
| # 查看日志 | |
| docker-compose -f docker/docker-compose.yml logs -f zenblock | |
| # 停止服务 | |
| docker-compose -f docker/docker-compose.yml down | |
| ``` | |
| #### 使用 Docker 命令 | |
| ```bash | |
| # 构建镜像 | |
| docker build -f docker/Dockerfile -t zenblock . | |
| # 运行容器(带数据持久化) | |
| docker run -d \ | |
| --name zenblock \ | |
| -p 3000:3000 \ | |
| -v ./zenblock-data:/app/data \ | |
| zenblock | |
| # 查看日志 | |
| docker logs -f zenblock | |
| # 停止并删除容器 | |
| docker stop zenblock && docker rm zenblock | |
| ``` | |
| #### Docker 配置详情 | |
| Docker 部署包含以下特性: | |
| - ✅ **自动数据库迁移** - 容器启动时自动执行 | |
| - ✅ **数据持久化** - SQLite 数据库存储在主机的 `./zenblock-data/` 目录 | |
| - ✅ **健康检查** - 容器每30秒自动检查应用健康状态 | |
| - ✅ **生产优化** - 使用 Next.js standalone 输出,镜像体积最小 | |
| - ✅ **自动重启** - 容器失败时自动重启(unless-stopped 策略) | |
| **数据存储位置**: | |
| - 数据库文件存储在本地 `./zenblock-data/dev.db` | |
| - 可以通过复制此目录进行备份/恢复 | |
| - 即使删除并重建容器,数据也不会丢失 | |
| **访问应用**: | |
| - 🇨🇳 中文版:http://localhost:3000/zh | |
| - 🇬🇧 英文版:http://localhost:3000/en | |
| --- |
当前容器启动命令为:
docker run -d \
--name zenblock \
-p 3000:3000 \
-v ./zenblock-data:/app/data \
zenblock实际需要确保环境变量 DATABASE_URL 正确传递,可使用如下方式:
docker run -d \
--name zenblock \
-p 3000:3000 \
-v ./zenblock-data:/app/data \
-e DATABASE_URL="file:/app/data/dev.db" \
zenblock并建议在README中明确此步骤,避免数据库未同步或数据丢失。
Docker Compose远程镜像优化参考
建议在 docker-compose.yml 配置中使用已推送远程仓库镜像,而不仅仅是本地构建。例如:
services:
zenblock:
image: malossov/zenblock:latest
ports:
- "3000:3000"
volumes:
- ./zenblock-data:/app/data
environment:
- DATABASE_URL=file:/app/data/dev.db当前文档描述仅参考本地镜像运行,建议增加如何拉取和运行仓库已发布镜像的描述。例如:
docker-compose -f docker/docker-compose.yml up -d
# 配置 `image: malossov/zenblock:latest` 以支持远程获取
相关源码/脚本
- Dockerfile
- 默认
ENV DATABASE_URL="file:./prisma/dev.db",外部持久化路径和环境变量传递需说明。
- 默认
- DOCKER_DEPLOYMENT.md
- 镜像自动推送及Secrets配置指南。
- docker-entrypoint.sh
- 启动时自动执行数据库迁移。
请修订README和Docker文档,将上述命令与镜像配置优化,加以说明与演示,提升用户部署体验。
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request