Skip to content

Commit b762c14

Browse files
committed
fix bug
1 parent 9ba4080 commit b762c14

File tree

6 files changed

+407
-439
lines changed

6 files changed

+407
-439
lines changed

Makefile

Lines changed: 132 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,125 @@
1-
# AIX-DB All-in-One 镜像构建配置
2-
# 包含:前端(nginx) + 后端 + MinIO + PostgreSQL
1+
# AIX-DB 镜像构建配置
2+
# 包含:基础镜像 + 应用镜像
33

4-
# 项目名称和版本
4+
# ============ 版本配置 ============
5+
6+
# 项目名称和应用版本
57
PROJECT_NAME = aix-db
68
VERSION = 1.2.2
79

10+
# 基础镜像版本(依赖变更时更新此版本号)
11+
BASE_VERSION = 1.0.0
12+
13+
# ============ 镜像名称配置 ============
14+
815
# Docker Hub 镜像
916
DOCKER_IMAGE = apconw/$(PROJECT_NAME):$(VERSION)
17+
BASE_IMAGE = apconw/$(PROJECT_NAME)-base:$(BASE_VERSION)
18+
BASE_IMAGE_LATEST = apconw/$(PROJECT_NAME)-base:latest
1019

1120
# 阿里云镜像仓库
1221
ALIYUN_REGISTRY = crpi-7xkxsdc0iki61l0q.cn-hangzhou.personal.cr.aliyuncs.com
1322
ALIYUN_NAMESPACE = apconw
1423
ALIYUN_IMAGE = $(ALIYUN_REGISTRY)/$(ALIYUN_NAMESPACE)/$(PROJECT_NAME):$(VERSION)
24+
ALIYUN_BASE_IMAGE = $(ALIYUN_REGISTRY)/$(ALIYUN_NAMESPACE)/$(PROJECT_NAME)-base:$(BASE_VERSION)
25+
ALIYUN_BASE_IMAGE_LATEST = $(ALIYUN_REGISTRY)/$(ALIYUN_NAMESPACE)/$(PROJECT_NAME)-base:latest
1526

1627
# Dockerfile 路径
1728
DOCKERFILE = ./docker/Dockerfile
29+
DOCKERFILE_BASE = ./docker/Dockerfile.base
30+
31+
# ============ 基础镜像构建(依赖变更时执行) ============
32+
33+
# 构建基础镜像(本地,当前架构)
34+
# 使用场景:pyproject.toml、uv.lock、package.json、pnpm-lock.yaml 变更时
35+
build-base:
36+
@echo "🔨 构建基础镜像 $(BASE_IMAGE)..."
37+
docker build --no-cache -t $(BASE_IMAGE) -t $(BASE_IMAGE_LATEST) -f $(DOCKERFILE_BASE) .
38+
@echo "✅ 基础镜像构建完成"
39+
40+
# 构建基础镜像(使用缓存)
41+
build-base-cache:
42+
@echo "🔨 构建基础镜像 $(BASE_IMAGE)(使用缓存)..."
43+
docker build -t $(BASE_IMAGE) -t $(BASE_IMAGE_LATEST) -f $(DOCKERFILE_BASE) .
44+
@echo "✅ 基础镜像构建完成"
45+
46+
# 推送基础镜像至 Docker Hub(多架构)
47+
push-base:
48+
@echo "📤 推送基础镜像至 Docker Hub..."
49+
docker buildx build --platform linux/amd64,linux/arm64 --push \
50+
-t $(BASE_IMAGE) \
51+
-t $(BASE_IMAGE_LATEST) \
52+
-f $(DOCKERFILE_BASE) .
53+
@echo "✅ 基础镜像推送完成"
54+
55+
# 推送基础镜像至阿里云(多架构)
56+
push-base-aliyun:
57+
@echo "📤 推送基础镜像至阿里云..."
58+
docker buildx build --platform linux/amd64,linux/arm64 --push \
59+
-t $(ALIYUN_BASE_IMAGE) \
60+
-t $(ALIYUN_BASE_IMAGE_LATEST) \
61+
-f $(DOCKERFILE_BASE) .
62+
@echo "✅ 基础镜像推送完成"
63+
64+
# 推送基础镜像至所有仓库
65+
push-base-all:
66+
@echo "📤 推送基础镜像至所有仓库..."
67+
docker buildx build --platform linux/amd64,linux/arm64 --push \
68+
-t $(BASE_IMAGE) \
69+
-t $(BASE_IMAGE_LATEST) \
70+
-t $(ALIYUN_BASE_IMAGE) \
71+
-t $(ALIYUN_BASE_IMAGE_LATEST) \
72+
-f $(DOCKERFILE_BASE) .
73+
@echo "✅ 基础镜像推送完成"
1874

19-
# ============ 本地构建 ============
75+
# ============ 应用镜像构建(日常发版使用) ============
2076

21-
# 构建镜像(本地,当前架构)
77+
# 快速构建应用镜像(基于基础镜像,仅复制源码)
78+
# 构建时间:~30秒
2279
build:
23-
docker build --no-cache -t $(DOCKER_IMAGE) -f $(DOCKERFILE) .
80+
@echo "🚀 快速构建应用镜像 $(DOCKER_IMAGE)..."
81+
docker build -t $(DOCKER_IMAGE) \
82+
--build-arg BASE_IMAGE=$(BASE_IMAGE_LATEST) \
83+
-f $(DOCKERFILE) .
84+
@echo "✅ 应用镜像构建完成"
2485

25-
# 构建镜像(使用缓存,加快构建速度)
26-
build-cache:
27-
docker build -t $(DOCKER_IMAGE) -f $(DOCKERFILE) .
86+
# 构建应用镜像(指定基础镜像版本)
87+
build-with-base-version:
88+
@echo "🚀 构建应用镜像(基础镜像: $(BASE_IMAGE))..."
89+
docker build -t $(DOCKER_IMAGE) \
90+
--build-arg BASE_IMAGE=$(BASE_IMAGE) \
91+
-f $(DOCKERFILE) .
92+
@echo "✅ 应用镜像构建完成"
2893

29-
# ============ 多架构构建并推送 ============
94+
# ============ 多架构构建并推送(应用镜像) ============
3095

3196
# 构建多架构镜像并推送至 Docker Hub
3297
push-dockerhub:
33-
docker buildx build --platform linux/amd64,linux/arm64 --push -t $(DOCKER_IMAGE) -f $(DOCKERFILE) .
98+
@echo "📤 推送应用镜像至 Docker Hub..."
99+
docker buildx build --platform linux/amd64,linux/arm64 --push \
100+
--build-arg BASE_IMAGE=$(BASE_IMAGE_LATEST) \
101+
-t $(DOCKER_IMAGE) \
102+
-f $(DOCKERFILE) .
103+
@echo "✅ 应用镜像推送完成"
34104

35105
# 构建多架构镜像并推送至阿里云
36106
push-aliyun:
37-
docker buildx build --platform linux/amd64,linux/arm64 --push -t $(ALIYUN_IMAGE) -f $(DOCKERFILE) .
107+
@echo "📤 推送应用镜像至阿里云..."
108+
docker buildx build --platform linux/amd64,linux/arm64 --push \
109+
--build-arg BASE_IMAGE=$(ALIYUN_BASE_IMAGE_LATEST) \
110+
-t $(ALIYUN_IMAGE) \
111+
-f $(DOCKERFILE) .
112+
@echo "✅ 应用镜像推送完成"
38113

39114
# 同时推送至 Docker Hub 和阿里云
40115
push-all:
116+
@echo "📤 推送应用镜像至所有仓库..."
41117
docker buildx build --platform linux/amd64,linux/arm64 --push \
118+
--build-arg BASE_IMAGE=$(BASE_IMAGE_LATEST) \
42119
-t $(DOCKER_IMAGE) \
43120
-t $(ALIYUN_IMAGE) \
44121
-f $(DOCKERFILE) .
122+
@echo "✅ 应用镜像推送完成"
45123

46124
# ============ Docker Compose 操作 ============
47125

@@ -63,13 +141,52 @@ restart:
63141

64142
# ============ 清理 ============
65143

66-
# 清理本地镜像
144+
# 清理本地应用镜像
67145
clean:
68146
docker rmi $(DOCKER_IMAGE) 2>/dev/null || true
69147

70-
# 清理所有构建缓存
148+
# 清理本地基础镜像
149+
clean-base:
150+
docker rmi $(BASE_IMAGE) $(BASE_IMAGE_LATEST) 2>/dev/null || true
151+
152+
# 清理所有本地镜像和构建缓存
71153
clean-all:
72154
docker rmi $(DOCKER_IMAGE) 2>/dev/null || true
155+
docker rmi $(BASE_IMAGE) $(BASE_IMAGE_LATEST) 2>/dev/null || true
73156
docker builder prune -f
74157

75-
.PHONY: build build-cache push-dockerhub push-aliyun push-all up down logs restart clean clean-all
158+
# ============ 帮助信息 ============
159+
160+
help:
161+
@echo ""
162+
@echo "AIX-DB Docker 镜像构建命令"
163+
@echo "=========================="
164+
@echo ""
165+
@echo "📦 基础镜像(依赖变更时执行):"
166+
@echo " make build-base - 构建基础镜像(本地)"
167+
@echo " make build-base-cache - 构建基础镜像(使用缓存)"
168+
@echo " make push-base - 推送基础镜像至 Docker Hub"
169+
@echo " make push-base-aliyun - 推送基础镜像至阿里云"
170+
@echo " make push-base-all - 推送基础镜像至所有仓库"
171+
@echo ""
172+
@echo "🚀 应用镜像(日常发版):"
173+
@echo " make build - 快速构建应用镜像(~30秒)"
174+
@echo " make push-dockerhub - 推送至 Docker Hub"
175+
@echo " make push-aliyun - 推送至阿里云"
176+
@echo " make push-all - 推送至所有仓库"
177+
@echo ""
178+
@echo "🐳 Docker Compose:"
179+
@echo " make up - 启动服务"
180+
@echo " make down - 停止服务"
181+
@echo " make logs - 查看日志"
182+
@echo " make restart - 重启服务"
183+
@echo ""
184+
@echo "🧹 清理:"
185+
@echo " make clean - 清理应用镜像"
186+
@echo " make clean-base - 清理基础镜像"
187+
@echo " make clean-all - 清理所有镜像和缓存"
188+
@echo ""
189+
190+
.PHONY: build-base build-base-cache push-base push-base-aliyun push-base-all \
191+
build build-with-base-version push-dockerhub push-aliyun push-all \
192+
up down logs restart clean clean-base clean-all help

0 commit comments

Comments
 (0)