You've already forked DataMate
feat(scripts): 添加 APT 缓存预装功能解决离线构建问题
- 新增 APT 缓存目录和相关构建脚本 export-cache.sh - 添加 build-base-images.sh 脚本用于构建预装 APT 包的基础镜像 - 增加 build-offline-final.sh 最终版离线构建脚本 - 更新 Makefile.offline.mk 添加新的离线构建目标 - 扩展 README.md 文档详细说明 APT 缓存问题解决方案 - 为多个服务添加使用预装基础镜像的离线 Dockerfile - 修改打包脚本包含 APT 缓存到最终压缩包中
This commit is contained in:
@@ -246,28 +246,59 @@ offline-build-classic: offline-setup
|
||||
offline-diagnose:
|
||||
@bash scripts/offline/diagnose.sh $(CACHE_DIR)
|
||||
|
||||
# 构建 APT 预装基础镜像(有网环境)
|
||||
.PHONY: offline-build-base-images
|
||||
offline-build-base-images:
|
||||
@echo "构建 APT 预装基础镜像..."
|
||||
@bash scripts/offline/build-base-images.sh $(CACHE_DIR)
|
||||
|
||||
# 使用预装基础镜像进行离线构建(推荐)
|
||||
.PHONY: offline-build-final
|
||||
offline-build-final: offline-setup
|
||||
@echo "使用预装 APT 包的基础镜像进行离线构建..."
|
||||
@bash scripts/offline/build-offline-final.sh $(CACHE_DIR) $(OFFLINE_VERSION)
|
||||
|
||||
# 完整离线导出(包含 APT 预装基础镜像)
|
||||
.PHONY: offline-export-full
|
||||
offline-export-full:
|
||||
@echo "======================================"
|
||||
@echo "完整离线缓存导出(含 APT 预装基础镜像)"
|
||||
@echo "======================================"
|
||||
@$(MAKE) offline-build-base-images
|
||||
@$(MAKE) offline-export
|
||||
@echo ""
|
||||
@echo "导出完成!传输时请包含以下文件:"
|
||||
@echo " - build-cache/images/base-images-with-apt.tar"
|
||||
@echo " - build-cache-YYYYMMDD.tar.gz"
|
||||
|
||||
# ========== 帮助 ==========
|
||||
|
||||
.PHONY: help-offline
|
||||
help-offline:
|
||||
@echo "离线构建命令:"
|
||||
@echo " make offline-export [CACHE_DIR=./build-cache] - 在有网环境导出构建缓存"
|
||||
@echo ""
|
||||
@echo "【有网环境】"
|
||||
@echo " make offline-export [CACHE_DIR=./build-cache] - 导出构建缓存"
|
||||
@echo " make offline-export-full - 导出完整缓存(含 APT 预装基础镜像)"
|
||||
@echo " make offline-build-base-images - 构建 APT 预装基础镜像"
|
||||
@echo ""
|
||||
@echo "【无网环境】"
|
||||
@echo " make offline-setup [CACHE_DIR=./build-cache] - 解压并准备离线缓存"
|
||||
@echo " make offline-build [CACHE_DIR=./build-cache] - 在无网环境构建所有服务(BuildKit)"
|
||||
@echo " make offline-build-classic - 使用传统 docker build(更稳定)"
|
||||
@echo " make <service>-offline-build - 离线构建单个服务"
|
||||
@echo " (如: make backend-offline-build)"
|
||||
@echo " make offline-build-final - 使用预装基础镜像构建(推荐,解决 APT 问题)"
|
||||
@echo " make offline-build-classic - 使用传统 docker build"
|
||||
@echo " make offline-build - 使用 BuildKit 构建"
|
||||
@echo " make offline-diagnose - 诊断离线构建环境"
|
||||
@echo " make <service>-offline-build - 离线构建单个服务"
|
||||
@echo ""
|
||||
@echo "完整工作流程:"
|
||||
@echo " # 1. 有网环境导出缓存"
|
||||
@echo " make offline-export"
|
||||
@echo "【完整工作流程(推荐)】"
|
||||
@echo " # 1. 有网环境导出完整缓存"
|
||||
@echo " make offline-export-full"
|
||||
@echo ""
|
||||
@echo " # 2. 传输缓存到无网环境"
|
||||
@echo " scp build-cache-*.tar.gz user@offline-server:/path/to/project/"
|
||||
@echo " # 2. 传输到无网环境(需要传输两个文件)"
|
||||
@echo " scp build-cache/images/base-images-with-apt.tar user@offline-server:/path/"
|
||||
@echo " scp build-cache-*.tar.gz user@offline-server:/path/"
|
||||
@echo ""
|
||||
@echo " # 3. 无网环境构建(推荐先用传统方式)"
|
||||
@echo " # 3. 无网环境构建"
|
||||
@echo " tar -xzf build-cache-*.tar.gz"
|
||||
@echo " make offline-diagnose # 检查环境"
|
||||
@echo " make offline-build-classic # 传统构建(推荐)"
|
||||
@echo " # 或 make offline-build # BuildKit 构建"
|
||||
@echo " docker load -i build-cache/images/base-images-with-apt.tar"
|
||||
@echo " make offline-build-final"
|
||||
|
||||
Reference in New Issue
Block a user