79 lines
1.9 KiB
Makefile
79 lines
1.9 KiB
Makefile
# 示例 Makefile
|
||
# 提供常用的开发和部署命令
|
||
|
||
.PHONY: help build run migrate-up migrate-down migrate-status docker-build docker-up clean
|
||
|
||
# 默认目标:显示帮助
|
||
help:
|
||
@echo "可用命令:"
|
||
@echo " make build - 编译应用和迁移工具"
|
||
@echo " make run - 运行应用(先执行迁移)"
|
||
@echo " make migrate-up - 执行数据库迁移"
|
||
@echo " make migrate-down - 回滚数据库迁移"
|
||
@echo " make migrate-status - 查看迁移状态"
|
||
@echo " make docker-build - 构建 Docker 镜像"
|
||
@echo " make docker-up - 启动 Docker 服务"
|
||
@echo " make clean - 清理编译文件"
|
||
|
||
# 编译
|
||
build:
|
||
@echo "编译应用..."
|
||
@mkdir -p bin
|
||
@go build -o bin/server cmd/server/main.go
|
||
@go build -o bin/migrate cmd/migrate/main.go
|
||
@echo "✓ 编译完成"
|
||
|
||
# 运行应用
|
||
run: migrate-up
|
||
@echo "启动应用..."
|
||
@./bin/server
|
||
|
||
# 执行迁移
|
||
migrate-up: build
|
||
@echo "执行数据库迁移..."
|
||
@./bin/migrate up
|
||
|
||
# 回滚迁移
|
||
migrate-down: build
|
||
@echo "回滚数据库迁移..."
|
||
@./bin/migrate down
|
||
|
||
# 查看迁移状态
|
||
migrate-status: build
|
||
@./bin/migrate status
|
||
|
||
# 构建 Docker 镜像
|
||
docker-build:
|
||
@echo "构建 Docker 镜像..."
|
||
@docker build -t myapp:latest .
|
||
|
||
# 启动 Docker 服务
|
||
docker-up:
|
||
@echo "启动 Docker 服务..."
|
||
@docker-compose up --build
|
||
|
||
# 清理
|
||
clean:
|
||
@echo "清理编译文件..."
|
||
@rm -rf bin
|
||
@echo "✓ 清理完成"
|
||
|
||
# 开发环境:直接运行(不编译)
|
||
dev-migrate-up:
|
||
@go run cmd/migrate/main.go up
|
||
|
||
dev-migrate-down:
|
||
@go run cmd/migrate/main.go down
|
||
|
||
dev-migrate-status:
|
||
@go run cmd/migrate/main.go status
|
||
|
||
# 交叉编译(Linux)
|
||
build-linux:
|
||
@echo "交叉编译 Linux 版本..."
|
||
@mkdir -p bin
|
||
@GOOS=linux GOARCH=amd64 go build -o bin/server-linux cmd/server/main.go
|
||
@GOOS=linux GOARCH=amd64 go build -o bin/migrate-linux cmd/migrate/main.go
|
||
@echo "✓ Linux 版本编译完成"
|
||
|