skillhub/Makefile
vsxd dbb6d9f39e feat(ops): improve Dockerfile caching, add dockerignore, docker profile, Makefile help
- Server Dockerfile: add Maven dependency caching layer for faster rebuilds
- Add .dockerignore for server and web to reduce build context
- Add docker profile to application.yml for container env var mapping
- Makefile: add help, logs, db-reset targets with ## annotations
2026-03-12 17:50:34 +08:00

66 lines
1.9 KiB
Makefile

.PHONY: help dev dev-down build test clean web-install dev-server dev-web build-web test-web typecheck-web lint-web generate-api prod-up prod-down logs db-reset
help: ## 显示帮助
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | \
awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-15s\033[0m %s\n", $$1, $$2}'
dev: ## 启动本地开发环境(仅依赖服务)
docker compose up -d
@echo "Waiting for services to be healthy..."
@sleep 5
@echo "Services ready. Start backend with: make dev-server"
@echo "Start frontend with: make dev-web"
dev-server: ## 启动后端开发服务器
cd server && ./mvnw spring-boot:run -Dspring-boot.run.profiles=local
dev-down: ## 停止本地开发环境
docker compose down
build: ## 构建后端
cd server && ./mvnw clean package -DskipTests
test: ## 运行后端测试
cd server && ./mvnw test
clean: ## 清理构建产物
cd server && ./mvnw clean
docker compose down -v
generate-api: ## 生成 OpenAPI 类型(前端用)
@echo "Generating OpenAPI types..."
cd web && pnpm run generate-api
web-install: ## 安装前端依赖
cd web && pnpm install
dev-web: ## 启动前端开发服务器
cd web && pnpm run dev
build-web: ## 构建前端
cd web && pnpm run build
test-web: ## 运行前端测试
cd web && pnpm run test
typecheck-web: ## 前端类型检查
cd web && pnpm run typecheck
lint-web: ## 前端代码检查
cd web && pnpm run lint
prod-up: ## 一键启动全部服务(生产模式)
docker compose -f docker-compose.prod.yml up -d --build
prod-down: ## 停止全部服务(生产模式)
docker compose -f docker-compose.prod.yml down
logs: ## 查看后端服务日志
docker compose -f docker-compose.prod.yml logs -f server
db-reset: ## 重置数据库
docker compose down -v
docker compose up -d postgres
@echo "Waiting for postgres..."
@sleep 3
cd server && ./mvnw flyway:migrate -pl skillhub-app