#!/bin/bash # 简单的Docker镜像构建脚本 # 当无法访问Docker Hub时使用 echo "=== 云盘应用 Docker 镜像构建工具 ===" # 检查可执行文件 if [ ! -f "dist/cloud-drive-server.exe" ]; then echo "错误: 未找到可执行文件" echo "请先运行: python package-app.py" exit 1 fi # 创建临时目录 TEMP_DIR="temp-docker" rm -rf $TEMP_DIR mkdir -p $TEMP_DIR echo "正在准备Docker镜像内容..." # 复制可执行文件 cp dist/cloud-drive-server.exe $TEMP_DIR/ # 创建运行脚本 cat > $TEMP_DIR/start.sh << 'EOF' #!/bin/sh # 设置时区 export TZ=Asia/Shanghai ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 创建必要目录 mkdir -p /app/uploads /app/logs # 启动应用 exec ./cloud-drive-server.exe EOF chmod +x $TEMP_DIR/start.sh # 创建简化的Dockerfile cat > $TEMP_DIR/Dockerfile << 'EOF' # 使用scratch基础镜像(无依赖) FROM scratch # 复制可执行文件和脚本 COPY cloud-drive-server.exe / COPY start.sh / # 设置执行权限 CMD ["/start.sh"] EOF echo "Docker镜像内容准备完成" echo "临时目录: $TEMP_DIR" # 如果可以使用Docker if command -v docker &> /dev/null; then echo "正在构建Docker镜像..." cd $TEMP_DIR # 尝试构建 if docker build -t cloud-drive-backend:simple . 2>/dev/null; then echo "OK Docker镜像构建成功" echo "镜像名称: cloud-drive-backend:simple" echo "" echo "运行命令:" echo " docker run -d -p 8002:8002 --name cloud-drive-backend cloud-drive-backend:simple" else echo "Docker镜像构建失败,可能是网络问题" echo "请检查Docker网络配置或稍后重试" fi cd .. else echo "未找到Docker命令" fi echo "=== 构建完成 ==="