Files
dock/02
2026-02-13 09:45:40 +08:00

96 lines
2.7 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# ================= 配置区域 =================
# 源代码位置 (刚才手动安装的位置)
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 "=== 🚀 开始制作 GoEdge Docker 镜像 ==="
# 1. 检查源目录是否存在
if [ ! -d "$SOURCE_DIR" ]; then
echo "❌ 错误:找不到源目录 $SOURCE_DIR"
exit 1
fi
cd "$SOURCE_DIR"
# 2. 动态生成 Dockerfile
# 使用 tail -f 确保容器在前台运行不退出
echo "📂 正在生成 Dockerfile..."
cat <<EOF > Dockerfile
FROM debian:12-slim
# 设置时区和基本环境
ENV TZ=Asia/Shanghai
WORKDIR /usr/local/goedge/edge-admin
# 将当前目录的所有文件复制到镜像中
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 <<EOF > "$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 "========================================================"