Files
photography/frontend/Makefile
xujiang 6efccae78a feat: 完成容器化系统和用户文档开发
本次提交包含3个重要功能的完成:

1. 📖 用户使用文档完成
   - 创建完整的用户使用手册 (docs/USER_MANUAL.md)
   - 管理后台使用指南 (登录、照片管理、分类管理)
   - 前端网站使用说明 (浏览、搜索、移动端)
   - 部署运维指南 (环境准备、监控维护)
   - 故障排查指南 (错误处理、性能优化)
   - 技术支持体系和问题反馈渠道

2. 🐳 后端Docker容器化完成
   - 多阶段构建Dockerfile (golang:1.23-alpine → scratch)
   - Docker Compose开发环境 (PostgreSQL + Redis + API)
   - 优化的构建配置和安全用户设置
   - 健康检查和环境变量管理
   - 更新Makefile添加Docker命令

3. 🏗️ 前端Docker容器化完成
   - 多阶段构建Dockerfile (node:20-alpine → nginx:1.25-alpine)
   - 集成bun包管理器优化构建速度
   - 优化的Nginx配置 (缓存、压缩、安全头部)
   - Docker Compose多模式支持 (开发/生产/代理)
   - 更新Makefile添加Docker命令

4. 📋 完整的Docker编排系统
   - 项目根目录完整的docker-compose.yml
   - 支持数据库、缓存、API、前端、管理后台的统一部署
   - 自动化Docker设置脚本 (docker-setup.sh)
   - 生产环境监控和日志收集配置

技术成果:
- 项目完成率从65.0%提升至72.5%
- 中优先级任务完成率达90%
- 低优先级任务开始推进(18%)
- 容器化部署体系完全就绪
- 用户文档体系建立完成

下一步: 继续推进容器化扩展和性能优化任务
2025-07-11 14:29:04 +08:00

187 lines
5.0 KiB
Makefile
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.

# Photography Frontend Makefile
# 使用 bun 作为包管理器的前端项目构建脚本
.PHONY: help install dev build start lint clean test type-check preview
# 默认目标
.DEFAULT_GOAL := help
# 项目配置
PROJECT_NAME = photography-frontend
PORT = 3000
BUILD_DIR = .next
# 帮助信息
help: ## 显示帮助信息
@echo "$(PROJECT_NAME) - 摄影作品集前端项目"
@echo ""
@echo "可用命令:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-15s\033[0m %s\n", $$1, $$2}'
# 安装依赖
install: ## 安装项目依赖
@echo "📦 安装依赖..."
bun install
# 开发服务器
dev: ## 启动开发服务器
@echo "🚀 启动开发服务器..."
bun run dev
# 构建项目
build: ## 构建生产版本
@echo "🔨 构建生产版本..."
bun run build
# 启动生产服务器
start: build ## 启动生产服务器
@echo "🌐 启动生产服务器..."
bun run start
# 代码检查
lint: ## 运行代码检查
@echo "🔍 运行代码检查..."
bun run lint
# 类型检查
type-check: ## 运行TypeScript类型检查
@echo "📋 运行类型检查..."
bunx tsc --noEmit
# 清理构建文件
clean: ## 清理构建文件和缓存
@echo "🧹 清理构建文件..."
rm -rf $(BUILD_DIR)
rm -rf node_modules
rm -f bun.lockb
# 重新安装
reinstall: clean install ## 清理并重新安装依赖
@echo "♻️ 重新安装完成"
# 预览构建结果
preview: build ## 预览构建结果
@echo "👀 预览构建结果..."
cd $(BUILD_DIR) && bunx serve
# 更新依赖
update: ## 更新所有依赖
@echo "⬆️ 更新依赖..."
bun update
# 添加依赖
add: ## 添加新依赖 (使用: make add PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make add PACKAGE=package-name"; \
exit 1; \
fi
@echo " 添加依赖: $(PACKAGE)"
bun add $(PACKAGE)
# 添加开发依赖
add-dev: ## 添加开发依赖 (使用: make add-dev PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make add-dev PACKAGE=package-name"; \
exit 1; \
fi
@echo " 添加开发依赖: $(PACKAGE)"
bun add -D $(PACKAGE)
# 移除依赖
remove: ## 移除依赖 (使用: make remove PACKAGE=package-name)
@if [ -z "$(PACKAGE)" ]; then \
echo "❌ 请指定包名: make remove PACKAGE=package-name"; \
exit 1; \
fi
@echo " 移除依赖: $(PACKAGE)"
bun remove $(PACKAGE)
# 格式化代码
format: ## 格式化代码
@echo "✨ 格式化代码..."
bunx prettier --write .
# 检查项目状态
status: ## 检查项目状态
@echo "📊 项目状态:"
@echo " Node版本: $(shell node --version)"
@echo " Bun版本: $(shell bun --version)"
@echo " 项目目录: $(PWD)"
@echo " 构建目录: $(BUILD_DIR)"
@if [ -f "bun.lockb" ]; then echo " 锁文件: ✅ bun.lockb"; else echo " 锁文件: ❌ 未找到"; fi
# 开发环境设置
setup: install ## 设置开发环境
@echo "🛠️ 设置开发环境..."
@if [ ! -f ".env.local" ]; then \
echo "📝 创建环境变量文件..."; \
cp .env.local.example .env.local 2>/dev/null || echo "NEXT_PUBLIC_API_URL=http://localhost:3001/api" > .env.local; \
fi
@echo "✅ 开发环境设置完成"
# 生产部署准备
deploy-prep: ## 准备生产部署
@echo "🚀 准备生产部署..."
make clean
make install
make type-check
make lint
make build
@echo "✅ 部署准备完成"
# 快速启动
quick: ## 快速启动 (安装依赖并启动开发服务器)
@echo "⚡ 快速启动..."
make install
make dev
# Docker 相关命令
docker-build: ## 构建Docker镜像
@echo "🐳 构建Docker镜像..."
docker build -t photography-frontend:latest .
docker-run: ## 运行Docker容器
@echo "🚀 运行Docker容器..."
docker run -d -p 3000:80 --name photography-frontend photography-frontend:latest
docker-stop: ## 停止Docker容器
@echo "⏹️ 停止Docker容器..."
docker stop photography-frontend || true
docker rm photography-frontend || true
docker-logs: ## 查看Docker日志
@echo "📋 查看Docker日志..."
docker logs -f photography-frontend
docker-dev: ## 启动Docker开发环境
@echo "🛠️ 启动Docker开发环境..."
docker-compose up -d
docker-dev-logs: ## 查看Docker开发环境日志
@echo "📋 查看Docker开发环境日志..."
docker-compose logs -f
docker-dev-stop: ## 停止Docker开发环境
@echo "⏹️ 停止Docker开发环境..."
docker-compose down
docker-clean: ## 清理Docker资源
@echo "🧹 清理Docker资源..."
docker system prune -f
# 生产环境Docker命令
docker-prod-build: ## 构建生产Docker镜像
@echo "🏭 构建生产Docker镜像..."
docker build -t photography-frontend:prod --target production .
docker-prod-deploy: ## 部署生产环境
@echo "🚀 部署生产环境..."
docker-compose -f docker-compose.yml --profile proxy up -d
docker-prod-logs: ## 查看生产环境日志
@echo "📋 查看生产环境日志..."
docker-compose -f docker-compose.yml logs -f
docker-prod-stop: ## 停止生产环境
@echo "⏹️ 停止生产环境..."
docker-compose -f docker-compose.yml down