|
|
#!/bin/bash
|
|
|
# 灵枢平台 Docker 离线打包脚本
|
|
|
# 在有网络的机器上运行,生成可离线部署的压缩包
|
|
|
|
|
|
set -e
|
|
|
|
|
|
OUTPUT="lingshu_docker_package"
|
|
|
IMAGE_NAME="lingshu_app"
|
|
|
|
|
|
echo "================================================"
|
|
|
echo " 灵枢平台 - Docker 离线打包"
|
|
|
echo "================================================"
|
|
|
|
|
|
# 构建镜像
|
|
|
echo "[1/4] 构建应用镜像..."
|
|
|
docker build -t $IMAGE_NAME .
|
|
|
|
|
|
# 拉取 MySQL 镜像(如果没有)
|
|
|
echo "[2/4] 获取 MySQL 8.0 镜像..."
|
|
|
docker pull mysql:8.0
|
|
|
|
|
|
# 导出镜像为 tar
|
|
|
echo "[3/4] 导出镜像文件..."
|
|
|
mkdir -p $OUTPUT
|
|
|
docker save $IMAGE_NAME | gzip > $OUTPUT/lingshu_app.tar.gz
|
|
|
docker save mysql:8.0 | gzip > $OUTPUT/mysql8.tar.gz
|
|
|
|
|
|
# 复制部署文件
|
|
|
echo "[4/4] 复制部署文件..."
|
|
|
cp docker-compose.yml $OUTPUT/
|
|
|
cp 灵枢数据库设计.sql $OUTPUT/
|
|
|
cp init_demo_data.sql $OUTPUT/ 2>/dev/null || echo " (无 init_demo_data.sql,跳过)"
|
|
|
cp deploy.sh $OUTPUT/ 2>/dev/null || true
|
|
|
|
|
|
# 写入目标机器的一键启动脚本
|
|
|
cat > $OUTPUT/install_and_run.sh << 'EOF'
|
|
|
#!/bin/bash
|
|
|
echo "================================================"
|
|
|
echo " 灵枢平台 - 离线安装启动"
|
|
|
echo "================================================"
|
|
|
|
|
|
echo "[1/3] 导入镜像(首次约需1-2分钟)..."
|
|
|
docker load < lingshu_app.tar.gz
|
|
|
docker load < mysql8.tar.gz
|
|
|
|
|
|
echo "[2/3] 启动服务..."
|
|
|
docker compose up -d
|
|
|
|
|
|
echo "[3/3] 等待数据库初始化..."
|
|
|
sleep 15
|
|
|
echo ""
|
|
|
echo "================================================"
|
|
|
echo " 启动完成!"
|
|
|
echo " 访问地址: http://localhost:5000"
|
|
|
echo " 停止服务: docker compose down"
|
|
|
echo " 查看日志: docker compose logs -f"
|
|
|
echo "================================================"
|
|
|
EOF
|
|
|
chmod +x $OUTPUT/install_and_run.sh
|
|
|
|
|
|
# 打包
|
|
|
echo ""
|
|
|
echo "正在压缩..."
|
|
|
tar -czf ${OUTPUT}.tar.gz $OUTPUT/
|
|
|
rm -rf $OUTPUT/
|
|
|
|
|
|
echo ""
|
|
|
echo "================================================"
|
|
|
echo " 打包完成: ${OUTPUT}.tar.gz"
|
|
|
echo " 发给朋友后,他只需:"
|
|
|
echo " 1. 安装 Docker Desktop"
|
|
|
echo " 2. 解压并进入文件夹"
|
|
|
echo " 3. 运行 bash install_and_run.sh"
|
|
|
echo " 4. 浏览器打开 http://localhost:5000"
|
|
|
echo "================================================"
|