#!/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 "================================================"