96 lines
2.7 KiB
Bash
96 lines
2.7 KiB
Bash
#!/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 "========================================================" |