Skip to content

优化README中的Docker命令与Docker Compose镜像配置 #1

@MALossov

Description

@MALossov
  1. README文件中的Docker命令存在误导:当前命令未修改databaseurl参数,导致数据库文件始终无法正确传递和使用。需修正README中的相关Docker命令,明确databaseurl配置流程。

  2. Docker Compose目前仅依赖本地镜像编辑,并未直接连接到已推送至远程仓库的镜像。建议优化Docker Compose配置,使其支持拉取远程镜像,提升部署与协作效率。


关键参考片段与代码

README.md & README.zh.md 演示段落(未包括DATABASE_URL相关说明)

zenblock/README.md

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
---

zenblock/README.zh.md

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` 以支持远程获取

相关源码/脚本


请修订README和Docker文档,将上述命令与镜像配置优化,加以说明与演示,提升用户部署体验。

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions