67 lines
1.9 KiB
Makefile
67 lines
1.9 KiB
Makefile
.PHONY: start dev backend frontend install stop frontend-build docker-pull-caddy docker-build docker-up docker-down docker-logs
|
|
|
|
ifneq (,$(wildcard .env))
|
|
include .env
|
|
export
|
|
endif
|
|
|
|
CADDY_RUNTIME_IMAGE ?= affiliate-caddy:2
|
|
CADDY_SOURCE_IMAGE ?= caddy:2
|
|
CADDY_FALLBACK_IMAGES ?= docker.m.daocloud.io/library/caddy:2 registry.cn-hangzhou.aliyuncs.com/caddy/caddy:2
|
|
|
|
# 一键启动前后端(推荐)
|
|
start dev:
|
|
@bash ./start.sh
|
|
|
|
backend:
|
|
cd backend && go run ./cmd/server
|
|
|
|
frontend:
|
|
cd frontend && npm run dev
|
|
|
|
install:
|
|
cd backend && go mod tidy
|
|
cd frontend && npm install
|
|
|
|
# 停止占用默认端口的进程
|
|
stop:
|
|
@-lsof -tiTCP:8080 -sTCP:LISTEN | xargs kill 2>/dev/null || true
|
|
@-lsof -tiTCP:5173 -sTCP:LISTEN | xargs kill 2>/dev/null || true
|
|
@echo "已尝试停止 8080 / 5173 端口服务"
|
|
|
|
# Docker 部署相关命令
|
|
frontend-build:
|
|
@echo "构建前端静态文件..."
|
|
cd frontend && npm ci && npm run build
|
|
|
|
docker-pull-caddy:
|
|
@set -e; \
|
|
echo "准备 Caddy 运行镜像: $(CADDY_RUNTIME_IMAGE)"; \
|
|
for image in $(CADDY_SOURCE_IMAGE) $(CADDY_FALLBACK_IMAGES); do \
|
|
echo "尝试拉取 Caddy 镜像: $$image"; \
|
|
if docker pull "$$image"; then \
|
|
docker tag "$$image" "$(CADDY_RUNTIME_IMAGE)"; \
|
|
echo "已将 $$image 标记为 $(CADDY_RUNTIME_IMAGE)"; \
|
|
exit 0; \
|
|
fi; \
|
|
done; \
|
|
echo "错误: Caddy 镜像拉取失败,可在 .env 中设置 CADDY_SOURCE_IMAGE 或 CADDY_FALLBACK_IMAGES"; \
|
|
exit 1
|
|
|
|
docker-build: frontend-build docker-pull-caddy
|
|
@echo "构建后端 Docker 镜像..."
|
|
docker build -f Dockerfile.backend -t affiliate-backend:latest .
|
|
@echo "构建完成,可执行: docker compose up -d --build"
|
|
|
|
docker-up: frontend-build docker-pull-caddy
|
|
@echo "启动 Docker Compose 服务..."
|
|
docker compose up -d --build
|
|
|
|
docker-down:
|
|
@echo "停止并移除容器..."
|
|
docker compose down
|
|
|
|
docker-logs:
|
|
@echo "查看 backend 和 caddy 日志..."
|
|
docker compose logs -f backend caddy
|