feat(docker): 添加完整的 Docker 构建支持

- 重构 Dockerfile 支持本地完整源码构建流程
- 添加 CI 专用的 Dockerfile.ci 使用预构建产物
- 创建 .dockerignore 和 .dockerignore.ci 文件优化构建上下文
- 添加 build-docker.sh 和 build-docker.bat 本地构建脚本
- 更新 GitHub Actions 工作流支持 Node.js 环境和 pnpm 依赖管理
- 添加 DOCKER.md 详细说明文档
- 优化 nginx 配置和端口暴露设置
This commit is contained in:
coolxitech
2026-01-08 17:13:46 +08:00
parent 21cf5762d2
commit d9c708e0ca
8 changed files with 279 additions and 13 deletions

89
DOCKER.md Normal file
View File

@@ -0,0 +1,89 @@
# Docker 构建说明
本项目支持两种 Docker 构建方式:
## 🏠 本地构建
### 方式一:使用构建脚本(推荐)
**Linux/macOS:**
```bash
chmod +x build-docker.sh
./build-docker.sh
```
**Windows:**
```cmd
build-docker.bat
```
### 方式二:直接使用 Docker 命令
```bash
# 构建镜像
docker build -t ogame-vue-ts:local .
# 运行容器
docker run -p 8080:80 ogame-vue-ts:local
```
## ☁️ GitHub Actions 自动构建
当代码推送到 `main` 分支或创建 tag 时GitHub Actions 会自动:
1. 在 Actions 环境中构建项目
2. 使用构建产物创建 Docker 镜像
3. 推送到 GitHub Container Registry 和 Docker Hub
### 使用预构建镜像
```bash
# 从 GitHub Container Registry 拉取
docker pull ghcr.io/your-username/ogame-vue-ts:latest
# 从 Docker Hub 拉取(如果配置了)
docker pull your-dockerhub-username/ogame-vue-ts:latest
# 运行
docker run -p 8080:80 ghcr.io/your-username/ogame-vue-ts:latest
```
## 📁 文件说明
- `Dockerfile` - 本地构建用,包含完整的源代码构建流程
- `Dockerfile.ci` - GitHub Actions 构建用,使用预构建产物
- `.dockerignore` - 本地构建时排除的文件
- `.dockerignore.ci` - CI 构建时排除的文件
- `build-docker.sh` / `build-docker.bat` - 本地构建便捷脚本
## 🔧 配置说明
### GitHub Actions 环境变量
需要在 GitHub 仓库设置中配置:
**Variables (公开):**
- `DOCKERHUB_USERNAME` - Docker Hub 用户名(可选)
**Secrets (私密):**
- `DOCKERHUB_TOKEN` - Docker Hub 访问令牌(可选)
- `GITHUB_TOKEN` - 自动提供,用于 GHCR
### 本地构建要求
- Docker
- 足够的磁盘空间(构建过程中会下载 Node.js 依赖)
## 🚀 快速开始
1. **本地开发测试:**
```bash
./build-docker.sh
docker run -p 8080:80 ogame-vue-ts:local
```
2. **访问应用:**
打开浏览器访问 `http://localhost:8080`
3. **生产部署:**
使用 GitHub Actions 自动构建的镜像进行部署