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

142 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ToolsShow 项目 Docker 运行指南(仅 `docker run`
本文档只针对当前项目,使用 `docker build` + `docker run` 启动,不使用 Compose。
## 1. 前提
- 已安装 Docker
- 在项目根目录执行命令:`C:/Users/User/WebstormProjects/ToolsShow`
先验证 Docker
```bash
docker version
```
## 2. 准备环境变量文件
本项目后端需要 `.env`。推荐直接基于模板创建:
```bash
cp server/.env.example server/.env
```
Windows PowerShell 可用:
```powershell
Copy-Item server/.env.example server/.env
```
至少确认以下项存在(`server/.env`
```env
PORT=3000
DATABASE_URL="file:./dev.db"
JWT_ACCESS_SECRET=change_this_access_secret
JWT_REFRESH_SECRET=change_this_refresh_secret
```
说明:
- 当前项目 Prisma 使用 `SQLite``server/prisma/schema.prisma`)。
- `DATABASE_URL="file:./dev.db"` 对应数据库文件在容器内路径 `/app/server/prisma/dev.db`
## 3. 构建镜像
在项目根目录执行:
```bash
docker build -t toolsshow:latest .
```
## 4. 启动容器(只用 docker run
### 4.1 最小启动命令
```bash
docker run -d \
--name toolsshow-app \
-p 3000:3000 \
--env-file ./server/.env \
toolsshow:latest
```
### 4.2 推荐启动命令(带 SQLite 持久化)
建议挂载 `server/prisma`,保证数据库文件重建容器后仍保留:
```bash
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. 常用运维命令
查看运行状态:
```bash
docker ps
```
查看日志:
```bash
docker logs -f toolsshow-app
```
停止/启动容器:
```bash
docker stop toolsshow-app
docker start toolsshow-app
```
删除容器(不会删除命名卷):
```bash
docker rm -f toolsshow-app
```
查看卷:
```bash
docker volume ls
```
删除 SQLite 数据卷(危险操作,会清数据):
```bash
docker volume rm toolsshow_prisma
```
## 6. 访问地址
- 应用地址:`http://localhost:3000`
- 若启动后无法访问,请先看日志:`docker logs toolsshow-app`
## 7. 一次性复制命令(推荐)
```bash
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 对应写法:
```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
```