From 611cc58734994bbd1d557821fa3da2acd193df42 Mon Sep 17 00:00:00 2001 From: 3344 Date: Fri, 13 Feb 2026 09:45:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=2002?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 02 | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 88 insertions(+), 15 deletions(-) diff --git a/02 b/02 index aa356cf..fcde091 100644 --- a/02 +++ b/02 @@ -1,23 +1,96 @@ #!/bin/bash -# search_all_videos.sh -echo "开始全面搜索视频文件..." -echo "==========================" +# ================= 配置区域 ================= +# 源代码位置 (刚才手动安装的位置) +SOURCE_DIR="/usr/local/goedge/edge-admin" +# 镜像名称 +IMAGE_NAME="goedge-admin:local-v1" +# 飞牛 NAS 数据存储路径规范 +NAS_DATA_DIR="/vol1/1000/dock/goedge" +# Compose 配置文件名 +COMPOSE_FILE="$NAS_DATA_DIR/goedge.yml" +# =========================================== -# 搜索容器内部 -echo "1. 搜索容器内部..." -docker exec dysync1 find /app -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" -o -name "*.mov" -o -name "*.wmv" \) 2>/dev/null +echo "=== 🚀 开始制作 GoEdge Docker 镜像 ===" -echo "--------------------------" +# 1. 检查源目录是否存在 +if [ ! -d "$SOURCE_DIR" ]; then + echo "❌ 错误:找不到源目录 $SOURCE_DIR" + exit 1 +fi -# 搜索本地映射目录 -echo "2. 搜索本地映射目录..." -find ./data -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" -o -name "*.mov" -o -name "*.wmv" \) 2>/dev/null +cd "$SOURCE_DIR" -echo "--------------------------" +# 2. 动态生成 Dockerfile +# 使用 tail -f 确保容器在前台运行不退出 +echo "📂 正在生成 Dockerfile..." +cat < Dockerfile +FROM debian:12-slim -# 搜索整个系统(可能需要权限) -echo "3. 搜索系统视频文件(可能需要sudo)..." -find /home -type f \( -name "*.mp4" -o -name "*.avi" -o -name "*.mkv" -o -name "*.mov" -o -name "*.wmv" \) 2>/dev/null | head -20 +# 设置时区和基本环境 +ENV TZ=Asia/Shanghai +WORKDIR /usr/local/goedge/edge-admin -echo "搜索完成!" +# 将当前目录的所有文件复制到镜像中 +COPY . . + +# 赋予执行权限 +RUN chmod +x bin/edge-admin + +# 暴露端口 (7788=管理端, 8001=API节点) +EXPOSE 7788 8001 + +# 启动命令:启动服务并挂起 logs,防止容器退出 +CMD ["/bin/sh", "-c", "./bin/edge-admin start && tail -f logs/run.log"] +EOF + +# 3. 构建 Docker 镜像 +echo "🐳 正在构建镜像 (这可能需要几秒钟)..." +docker build -t "$IMAGE_NAME" . + +if [ $? -ne 0 ]; then + echo "❌ 镜像构建失败!" + rm Dockerfile + exit 1 +fi + +# 清理临时生成的 Dockerfile +rm Dockerfile +echo "✅ 镜像 $IMAGE_NAME 构建成功!" + +# 4. 准备飞牛 NAS 目录结构 +echo "📂 正在创建数据目录结构: $NAS_DATA_DIR ..." +mkdir -p "$NAS_DATA_DIR/configs" +mkdir -p "$NAS_DATA_DIR/logs" +mkdir -p "$NAS_DATA_DIR/data" + +# 5. 生成 docker-compose (goedge.yml) +echo "📝 正在生成配置文件: $COMPOSE_FILE ..." +cat < "$COMPOSE_FILE" +version: '3' +services: + goedge: + image: $IMAGE_NAME + container_name: goedge-admin + restart: always + network_mode: "host" + volumes: + - "$NAS_DATA_DIR/configs:/usr/local/goedge/edge-admin/configs" + - "$NAS_DATA_DIR/logs:/usr/local/goedge/edge-admin/logs" + - "$NAS_DATA_DIR/data:/usr/local/goedge/edge-admin/data" +EOF + +echo "" +echo "========================================================" +echo "🎉 恭喜!镜像制作与配置生成已完成!" +echo "========================================================" +echo "1. 镜像名称: $IMAGE_NAME" +echo "2. 配置文件: $COMPOSE_FILE" +echo "3. 数据目录: $NAS_DATA_DIR" +echo "" +echo "👉 你现在可以执行以下命令来启动容器:" +echo " docker compose -f $COMPOSE_FILE up -d" +echo "" +echo "💡 如果想把镜像导出保存(备份),请运行:" +echo " docker save -o /tmp/goedge-image.tar $IMAGE_NAME" +echo "========================================================" \ No newline at end of file