修改makefile

This commit is contained in:
2026-01-02 15:18:07 +08:00
parent 89bc8bf1d4
commit 73badc175d
3 changed files with 145 additions and 22 deletions

View File

@@ -2,17 +2,42 @@
# Urban Lifeline - Docker 构建与部署 (All-in-One) # Urban Lifeline - Docker 构建与部署 (All-in-One)
# ================================================ # ================================================
.PHONY: help build build-serv build-web up down logs ps status restart .PHONY: help build build-pg build-base build-serv build-web up down logs ps status restart
.PHONY: save save-pg save-base save-serv save-web
# 项目根目录 (相对于此 Makefile)
ROOT_DIR := ../..
# 镜像导出目录
EXPORT_DIR := ./images
# 时间戳标签
TIMESTAMP := $(shell date +%Y%m%d_%H%M%S)
# 默认目标 # 默认目标
help: help:
@echo "Urban Lifeline Docker 命令 (All-in-One 模式)" @echo "Urban Lifeline Docker 命令 (All-in-One 模式)"
@echo "" @echo ""
@echo "构建命令:" @echo "构建命令:"
@echo " make build - 构建所有镜像" @echo " make build - 构建所有镜像 (pg + base + serv + web)"
@echo " make build-serv - 构建后端镜像" @echo " make build-pg - 构建 PostgreSQL 镜像"
@echo " make build-base - 构建后端基础镜像"
@echo " make build-serv - 构建后端服务镜像 (依赖 base)"
@echo " make build-web - 构建前端镜像" @echo " make build-web - 构建前端镜像"
@echo "" @echo ""
@echo "构建并导出 (SAVE=1):"
@echo " make build-pg SAVE=1 - 构建并导出 PostgreSQL 镜像"
@echo " make build-serv SAVE=1 - 构建并导出后端镜像"
@echo " make build-web SAVE=1 - 构建并导出前端镜像"
@echo " make build SAVE=1 - 构建并导出所有镜像"
@echo ""
@echo "导出命令:"
@echo " make save - 导出所有镜像"
@echo " make save-pg - 导出 PostgreSQL 镜像"
@echo " make save-base - 导出后端基础镜像"
@echo " make save-serv - 导出后端服务镜像"
@echo " make save-web - 导出前端镜像"
@echo ""
@echo "启动/停止:" @echo "启动/停止:"
@echo " make up - 启动所有服务" @echo " make up - 启动所有服务"
@echo " make down - 停止所有服务" @echo " make down - 停止所有服务"
@@ -23,24 +48,116 @@ help:
@echo " make logs - 查看日志" @echo " make logs - 查看日志"
@echo " make restart-serv SERVICE=gateway - 重启后端服务" @echo " make restart-serv SERVICE=gateway - 重启后端服务"
@echo " make restart-web SITE=platform - 重启前端站点" @echo " make restart-web SITE=platform - 重启前端站点"
@echo ""
@echo "镜像导出目录: $(EXPORT_DIR)"
# 构建 # ============================================
build: build-serv build-web # 构建镜像
# ============================================
build-serv: # 构建所有镜像
bash serv/build.sh build: build-pg build-base build-serv build-web
ifdef SAVE
@$(MAKE) save
endif
# 构建 PostgreSQL 镜像
build-pg:
@echo "=========================================="
@echo " 构建 PostgreSQL 镜像"
@echo " 标签: $(TIMESTAMP) / latest"
@echo "=========================================="
docker build -t urban-lifeline-pg:$(TIMESTAMP) -f postgres/Dockerfile.pg postgres/
docker tag urban-lifeline-pg:$(TIMESTAMP) urban-lifeline-pg:latest
ifdef SAVE
@$(MAKE) save-pg
endif
# 构建后端基础镜像
build-base:
@echo "=========================================="
@echo " 构建后端基础镜像"
@echo " 标签: $(TIMESTAMP) / latest"
@echo "=========================================="
cd $(ROOT_DIR) && docker build -t urban-lifeline-base-serv:$(TIMESTAMP) -f docker/urbanLifeline/serv/Dockerfile.base .
docker tag urban-lifeline-base-serv:$(TIMESTAMP) urban-lifeline-base-serv:latest
ifdef SAVE
@$(MAKE) save-base
endif
# 构建后端服务镜像 (依赖 base 镜像)
build-serv: build-base
@echo "=========================================="
@echo " 构建后端服务镜像"
@echo " 标签: $(TIMESTAMP) / latest"
@echo "=========================================="
cd $(ROOT_DIR) && docker build -t urban-lifeline-serv:$(TIMESTAMP) -f docker/urbanLifeline/serv/Dockerfile.serv .
docker tag urban-lifeline-serv:$(TIMESTAMP) urban-lifeline-serv:latest
ifdef SAVE
@$(MAKE) save-serv
endif
# 构建前端镜像
build-web: build-web:
bash web/build.sh @echo "=========================================="
@echo " 构建前端镜像"
@echo " 标签: $(TIMESTAMP) / latest"
@echo "=========================================="
cd $(ROOT_DIR) && docker build -t urban-lifeline-web:$(TIMESTAMP) -f docker/urbanLifeline/web/Dockerfile.web .
docker tag urban-lifeline-web:$(TIMESTAMP) urban-lifeline-web:latest
ifdef SAVE
@$(MAKE) save-web
endif
# ============================================
# 导出镜像
# ============================================
# 创建导出目录
$(EXPORT_DIR):
mkdir -p $(EXPORT_DIR)
# 导出所有镜像
save: save-pg save-base save-serv save-web
# 导出 PostgreSQL 镜像
save-pg: $(EXPORT_DIR)
@echo "导出 PostgreSQL 镜像..."
docker save urban-lifeline-pg:latest | gzip > $(EXPORT_DIR)/urban-lifeline-pg.tar.gz
@echo "已导出: $(EXPORT_DIR)/urban-lifeline-pg.tar.gz"
# 导出后端基础镜像
save-base: $(EXPORT_DIR)
@echo "导出后端基础镜像..."
docker save urban-lifeline-base-serv:latest | gzip > $(EXPORT_DIR)/urban-lifeline-base-serv.tar.gz
@echo "已导出: $(EXPORT_DIR)/urban-lifeline-base-serv.tar.gz"
# 导出后端服务镜像
save-serv: $(EXPORT_DIR)
@echo "导出后端服务镜像..."
docker save urban-lifeline-serv:latest | gzip > $(EXPORT_DIR)/urban-lifeline-serv.tar.gz
@echo "已导出: $(EXPORT_DIR)/urban-lifeline-serv.tar.gz"
# 导出前端镜像
save-web: $(EXPORT_DIR)
@echo "导出前端镜像..."
docker save urban-lifeline-web:latest | gzip > $(EXPORT_DIR)/urban-lifeline-web.tar.gz
@echo "已导出: $(EXPORT_DIR)/urban-lifeline-web.tar.gz"
# ============================================
# 启动/停止
# ============================================
# 启动/停止 (通过主 docker-compose)
up: up:
cd .. && docker compose --profile all up -d cd .. && docker compose --profile all up -d
down: down:
cd .. && docker compose --profile all down cd .. && docker compose --profile all down
# 状态 # ============================================
# 状态查看
# ============================================
ps: ps:
docker ps --filter "name=urban-lifeline" docker ps --filter "name=urban-lifeline"
@@ -51,7 +168,10 @@ status:
@echo "=== 前端服务状态 ===" @echo "=== 前端服务状态 ==="
@docker exec urban-lifeline-web /app/web-manager.sh status 2>/dev/null || echo "前端容器未运行" @docker exec urban-lifeline-web /app/web-manager.sh status 2>/dev/null || echo "前端容器未运行"
# ============================================
# 日志 # 日志
# ============================================
logs: logs:
cd .. && docker compose logs -f --tail=100 cd .. && docker compose logs -f --tail=100
@@ -61,7 +181,10 @@ logs-serv:
logs-web: logs-web:
docker logs -f --tail=100 urban-lifeline-web docker logs -f --tail=100 urban-lifeline-web
# ============================================
# 重启单个服务 # 重启单个服务
# ============================================
restart-serv: restart-serv:
@if [ -z "$(SERVICE)" ]; then \ @if [ -z "$(SERVICE)" ]; then \
echo "用法: make restart-serv SERVICE=gateway"; \ echo "用法: make restart-serv SERVICE=gateway"; \

View File

@@ -25,12 +25,12 @@ declare -A SERVICES=(
["system"]="8082:384m" ["system"]="8082:384m"
["auth"]="8081:256m" ["auth"]="8081:256m"
["file"]="8084:256m" ["file"]="8084:256m"
["log"]="8083:192m" # ["log"]="8083:192m"
["message"]="8085:256m" # ["message"]="8085:256m"
["crontab"]="8086:192m" # ["crontab"]="8086:192m"
["ai"]="8090:384m" ["ai"]="8090:384m"
["bidding"]="8087:256m" # ["bidding"]="8087:256m"
["platform"]="8089:256m" # ["platform"]="8089:256m"
["workcase"]="8088:384m" ["workcase"]="8088:384m"
) )

View File

@@ -57,7 +57,7 @@ declare -A WEBS=(
["shared"]="SHARED_PORT:8000" ["shared"]="SHARED_PORT:8000"
["platform"]="PLATFORM_PORT:8001" ["platform"]="PLATFORM_PORT:8001"
["workcase"]="WORKCASE_PORT:8002" ["workcase"]="WORKCASE_PORT:8002"
["bidding"]="BIDDING_PORT:8003" # ["bidding"]="BIDDING_PORT:8003"
["workcase_wechat"]="WORKCASE_WECHAT_PORT:8004" ["workcase_wechat"]="WORKCASE_WECHAT_PORT:8004"
) )