Jelajahi Sumber

debian:stable-slim

黄中银 3 bulan lalu
induk
melakukan
6248d8c315

+ 10 - 2
mixapi/china/Dockerfile

@@ -1,6 +1,14 @@
-# 使用busybox:glibc作为基础镜像(自带wget、crond和sh
+# 使用debian:stable-slim作为基础镜像(支持QEMU模拟,用于多架构构建
 # 国内使用华为云镜像加速
-FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/busybox:glibc
+FROM swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/debian:stable-slim
+
+# 安装必要的工具
+RUN apt-get update && apt-get install -y --no-install-recommends \
+    wget \
+    ca-certificates \
+    cron \
+    procps \
+    && rm -rf /var/lib/apt/lists/*
 
 # 设置下载目录
 WORKDIR /app

+ 5 - 2
mixapi/china/README.md

@@ -6,10 +6,11 @@
 
 | 文件 | 说明 |
 |------|------|
-| `Dockerfile` | Docker 镜像构建文件(使用华为云镜像源) |
+| `Dockerfile` | Docker 镜像构建文件(使用华为云镜像源,基于 debian:stable-slim) |
 | `common.sh` | 公共函数库(使用 GitHub 代理加速) |
 | `run.sh` | 主启动脚本(构建时下载初始版本、运行时设置定时任务) |
 | `check_update.sh` | 更新检测脚本(由 crontab 定时调用) |
+| `buildDockerImage_u24_docker.ps1` | Windows 构建脚本(远程构建并推送) |
 
 ## 构建方法
 
@@ -45,7 +46,9 @@ docker run -d -p 3000:3000 -v /path/to/data:/data mixapi:latest
 
 | 原始镜像 | 加速镜像 |
 |----------|----------|
-| `busybox:glibc` | `swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/busybox:glibc` |
+| `debian:stable-slim` | `swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/debian:stable-slim` |
+
+> 注:使用 debian:stable-slim 而非 busybox:glibc,因为 busybox 不支持 QEMU 模拟,无法进行多架构构建。
 
 ### 2. GitHub 代理加速
 

+ 28 - 14
mixapi/china/run.sh

@@ -35,21 +35,35 @@ setup_cron() {
     
     echo "设置定时任务: 每天 ${cron_hour}:${cron_min} 执行更新检测"
     
-    # 确保cron目录存在
-    mkdir -p /var/spool/cron/crontabs
-    
-    # 删除旧的更新任务(如果存在)
-    if [ -f "$CRON_FILE" ]; then
-        grep -v "$UPDATE_SCRIPT" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
-        mv "${CRON_FILE}.tmp" "$CRON_FILE"
+    # 检测 cron 类型并配置
+    if command -v crontab >/dev/null 2>&1; then
+        # Debian/Ubuntu 风格的 cron
+        echo "$cron_entry" | crontab -
+        # 启动 cron 服务
+        if command -v cron >/dev/null 2>&1; then
+            cron
+            echo "cron 服务已启动"
+        elif command -v crond >/dev/null 2>&1; then
+            crond
+            echo "crond 服务已启动"
+        fi
+    else
+        # Busybox 风格的 crond
+        mkdir -p /var/spool/cron/crontabs
+        
+        # 删除旧的更新任务(如果存在)
+        if [ -f "$CRON_FILE" ]; then
+            grep -v "$UPDATE_SCRIPT" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
+            mv "${CRON_FILE}.tmp" "$CRON_FILE"
+        fi
+        
+        # 添加新的定时任务
+        echo "$cron_entry" >> "$CRON_FILE"
+        
+        # 启动 crond
+        crond -b -l 8
+        echo "crond 已启动"
     fi
-    
-    # 添加新的定时任务
-    echo "$cron_entry" >> "$CRON_FILE"
-    
-    # 启动crond(busybox crond)
-    crond -b -l 8
-    echo "crond 已启动"
 }
 
 # 仅更新模式(构建时使用)

+ 10 - 2
mixapi/overseas/Dockerfile

@@ -1,5 +1,13 @@
-# 使用busybox:glibc作为基础镜像(自带wget、crond和sh)
-FROM busybox:glibc
+# 使用debian:stable-slim作为基础镜像(支持QEMU模拟,用于多架构构建)
+FROM debian:stable-slim
+
+# 安装必要的工具
+RUN apt-get update && apt-get install -y --no-install-recommends \
+    wget \
+    ca-certificates \
+    cron \
+    procps \
+    && rm -rf /var/lib/apt/lists/*
 
 # 设置下载目录
 WORKDIR /app

+ 3 - 2
mixapi/overseas/README.md

@@ -6,10 +6,11 @@
 
 | 文件 | 说明 |
 |------|------|
-| `Dockerfile` | Docker 镜像构建文件 |
-| `common.sh` | 公共函数库(变量定义、下载函数等) |
+| `Dockerfile` | Docker 镜像构建文件(基于 debian:stable-slim) |
+| `common.sh` | 公共函数库(变量定义、下载函数等,支持 GITHUB_PROXY 环境变量) |
 | `run.sh` | 主启动脚本(构建时下载初始版本、运行时设置定时任务) |
 | `check_update.sh` | 更新检测脚本(由 crontab 定时调用) |
+| `buildDockerImage_apq2.ps1` | Windows 构建脚本(远程构建并推送) |
 
 ## 构建方法
 

+ 28 - 14
mixapi/overseas/run.sh

@@ -35,21 +35,35 @@ setup_cron() {
     
     echo "设置定时任务: 每天 ${cron_hour}:${cron_min} 执行更新检测"
     
-    # 确保cron目录存在
-    mkdir -p /var/spool/cron/crontabs
-    
-    # 删除旧的更新任务(如果存在)
-    if [ -f "$CRON_FILE" ]; then
-        grep -v "$UPDATE_SCRIPT" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
-        mv "${CRON_FILE}.tmp" "$CRON_FILE"
+    # 检测 cron 类型并配置
+    if command -v crontab >/dev/null 2>&1; then
+        # Debian/Ubuntu 风格的 cron
+        echo "$cron_entry" | crontab -
+        # 启动 cron 服务
+        if command -v cron >/dev/null 2>&1; then
+            cron
+            echo "cron 服务已启动"
+        elif command -v crond >/dev/null 2>&1; then
+            crond
+            echo "crond 服务已启动"
+        fi
+    else
+        # Busybox 风格的 crond
+        mkdir -p /var/spool/cron/crontabs
+        
+        # 删除旧的更新任务(如果存在)
+        if [ -f "$CRON_FILE" ]; then
+            grep -v "$UPDATE_SCRIPT" "$CRON_FILE" > "${CRON_FILE}.tmp" 2>/dev/null || true
+            mv "${CRON_FILE}.tmp" "$CRON_FILE"
+        fi
+        
+        # 添加新的定时任务
+        echo "$cron_entry" >> "$CRON_FILE"
+        
+        # 启动 crond
+        crond -b -l 8
+        echo "crond 已启动"
     fi
-    
-    # 添加新的定时任务
-    echo "$cron_entry" >> "$CRON_FILE"
-    
-    # 启动crond(busybox crond)
-    crond -b -l 8
-    echo "crond 已启动"
 }
 
 # 仅更新模式(构建时使用)