79 lines
1.8 KiB
Bash
79 lines
1.8 KiB
Bash
#!/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 "=== 构建完成 ===" |