Files
tools-show/docs/DOCKER_RUN_TOOLSSHOW.md
dlandy 40be11adbf init
2026-03-27 10:18:26 +08:00

2.7 KiB
Raw Blame History

ToolsShow 项目 Docker 运行指南(仅 docker run

本文档只针对当前项目,使用 docker build + docker run 启动,不使用 Compose。

1. 前提

  • 已安装 Docker
  • 在项目根目录执行命令:C:/Users/User/WebstormProjects/ToolsShow

先验证 Docker

docker version

2. 准备环境变量文件

本项目后端需要 .env。推荐直接基于模板创建:

cp server/.env.example server/.env

Windows PowerShell 可用:

Copy-Item server/.env.example server/.env

至少确认以下项存在(server/.env

PORT=3000
DATABASE_URL="file:./dev.db"
JWT_ACCESS_SECRET=change_this_access_secret
JWT_REFRESH_SECRET=change_this_refresh_secret

说明:

  • 当前项目 Prisma 使用 SQLiteserver/prisma/schema.prisma)。
  • DATABASE_URL="file:./dev.db" 对应数据库文件在容器内路径 /app/server/prisma/dev.db

3. 构建镜像

在项目根目录执行:

docker build -t toolsshow:latest .

4. 启动容器(只用 docker run

4.1 最小启动命令

docker run -d \
  --name toolsshow-app \
  -p 3000:3000 \
  --env-file ./server/.env \
  toolsshow:latest

4.2 推荐启动命令(带 SQLite 持久化)

建议挂载 server/prisma,保证数据库文件重建容器后仍保留:

docker run -d \
  --name toolsshow-app \
  -p 3000:3000 \
  --env-file ./server/.env \
  -v toolsshow_prisma:/app/server/prisma \
  toolsshow:latest

说明:

  • 容器启动命令已在 Dockerfile 中定义:npx prisma migrate deploy && node dist/main
  • 首次启动会自动执行数据库迁移。

5. 常用运维命令

查看运行状态:

docker ps

查看日志:

docker logs -f toolsshow-app

停止/启动容器:

docker stop toolsshow-app
docker start toolsshow-app

删除容器(不会删除命名卷):

docker rm -f toolsshow-app

查看卷:

docker volume ls

删除 SQLite 数据卷(危险操作,会清数据):

docker volume rm toolsshow_prisma

6. 访问地址

  • 应用地址:http://localhost:3000
  • 若启动后无法访问,请先看日志:docker logs toolsshow-app

7. 一次性复制命令(推荐)

docker build -t toolsshow:latest . && \
docker rm -f toolsshow-app 2>/dev/null || true && \
docker run -d --name toolsshow-app -p 3000:3000 --env-file ./server/.env -v toolsshow_prisma:/app/server/prisma toolsshow:latest

PowerShell 对应写法:

docker build -t toolsshow:latest .
docker rm -f toolsshow-app 2>$null
docker run -d --name toolsshow-app -p 3000:3000 --env-file ./server/.env -v toolsshow_prisma:/app/server/prisma toolsshow:latest