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:
87
scripts/offline/build-base-images.sh
Normal file
87
scripts/offline/build-base-images.sh
Normal file
@@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
# 构建带有预装 APT 包的基础镜像
|
||||
# Usage: ./build-base-images.sh [output-dir]
|
||||
|
||||
set -e
|
||||
|
||||
OUTPUT_DIR="${1:-./build-cache}"
|
||||
IMAGES_DIR="$OUTPUT_DIR/images"
|
||||
|
||||
mkdir -p "$IMAGES_DIR"
|
||||
|
||||
echo "======================================"
|
||||
echo "构建预装 APT 包的基础镜像"
|
||||
echo "======================================"
|
||||
|
||||
# 构建各个基础镜像
|
||||
echo ""
|
||||
echo "1. 构建 datamate-java-base (用于 backend, gateway)..."
|
||||
docker build \
|
||||
-t datamate-java-base:latest \
|
||||
--target datamate-java-base \
|
||||
-f scripts/offline/Dockerfile.base-images \
|
||||
. || echo "Warning: datamate-java-base 构建失败"
|
||||
|
||||
echo ""
|
||||
echo "2. 构建 datamate-python-base (用于 backend-python)..."
|
||||
docker build \
|
||||
-t datamate-python-base:latest \
|
||||
--target datamate-python-base \
|
||||
-f scripts/offline/Dockerfile.base-images \
|
||||
. || echo "Warning: datamate-python-base 构建失败"
|
||||
|
||||
echo ""
|
||||
echo "3. 构建 datamate-runtime-base (用于 runtime)..."
|
||||
docker build \
|
||||
-t datamate-runtime-base:latest \
|
||||
--target datamate-runtime-base \
|
||||
-f scripts/offline/Dockerfile.base-images \
|
||||
. || echo "Warning: datamate-runtime-base 构建失败"
|
||||
|
||||
echo ""
|
||||
echo "4. 构建 deer-flow-backend-base (用于 deer-flow-backend)..."
|
||||
docker build \
|
||||
-t deer-flow-backend-base:latest \
|
||||
--target deer-flow-backend-base \
|
||||
-f scripts/offline/Dockerfile.base-images \
|
||||
. || echo "Warning: deer-flow-backend-base 构建失败"
|
||||
|
||||
echo ""
|
||||
echo "5. 构建 mineru-base (用于 mineru)..."
|
||||
docker build \
|
||||
-t mineru-base:latest \
|
||||
--target mineru-base \
|
||||
-f scripts/offline/Dockerfile.base-images \
|
||||
. || echo "Warning: mineru-base 构建失败"
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
echo "保存基础镜像集合"
|
||||
echo "======================================"
|
||||
|
||||
docker save -o "$IMAGES_DIR/base-images-with-apt.tar" \
|
||||
maven:3-eclipse-temurin-21 \
|
||||
maven:3-eclipse-temurin-8 \
|
||||
eclipse-temurin:21-jdk \
|
||||
mysql:8 \
|
||||
node:20-alpine \
|
||||
nginx:1.29 \
|
||||
ghcr.nju.edu.cn/astral-sh/uv:python3.11-bookworm \
|
||||
ghcr.nju.edu.cn/astral-sh/uv:python3.12-bookworm \
|
||||
ghcr.nju.edu.cn/astral-sh/uv:latest \
|
||||
python:3.12-slim \
|
||||
python:3.11-slim \
|
||||
gcr.io/distroless/nodejs20-debian12 \
|
||||
datamate-java-base:latest \
|
||||
datamate-python-base:latest \
|
||||
datamate-runtime-base:latest \
|
||||
deer-flow-backend-base:latest \
|
||||
mineru-base:latest \
|
||||
2>/dev/null || echo "Warning: 部分镜像保存失败"
|
||||
|
||||
echo ""
|
||||
echo "======================================"
|
||||
echo "✓ 基础镜像构建完成"
|
||||
echo "======================================"
|
||||
echo "镜像列表:"
|
||||
docker images | grep -E "(datamate-|deer-flow-|mineru-)base" || true
|
||||
Reference in New Issue
Block a user