#!/bin/bash # ===================================================== # CaiWuXiTong 本地部署一键初始化脚本 # 用法:bash deploy/local-init.sh # 前提:Docker Desktop 已启动 # ===================================================== set -e cd "$(dirname "$0")/.." echo "==> 工作目录: $(pwd)" # 1. 构建并启动服务 echo "" echo "==> [1/4] 构建镜像并启动容器(首次需要 5-15 分钟下载 PHP/MySQL 镜像并安装依赖)..." docker compose -f docker-compose.local.yml up -d --build # 2. 等待 MySQL 就绪 echo "" echo "==> [2/4] 等待 MySQL 就绪..." for i in $(seq 1 60); do if docker compose -f docker-compose.local.yml exec -T mysql \ mysqladmin ping -h 127.0.0.1 -u akaunting -pakaunting123 >/dev/null 2>&1; then echo " MySQL 已就绪。" break fi echo " 等待中... ($i/60)" sleep 2 done # 3. 初始化数据库与管理员账号(幂等:已安装会自动跳过) echo "" echo "==> [3/4] 执行 php artisan install 初始化数据库与管理员..." docker compose -f docker-compose.local.yml exec -T app \ php artisan install --no-interaction \ --db-host=mysql \ --db-port=3306 \ --db-name=akaunting \ --db-username=akaunting \ --db-password=akaunting123 \ --company-name="本地测试公司" \ --company-email=admin@company.com \ --admin-email=admin@company.com \ --admin-password=admin123 \ --locale=zh-CN \ || echo " (install 已执行过则忽略此错误)" # 4. 最终验证 echo "" echo "==> [4/4] 验证访问..." sleep 3 HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:18088/auth/login || echo "000") echo " http://127.0.0.1:18088/auth/login -> HTTP $HTTP_CODE" echo "" echo "=====================================================" echo "部署完成!" echo " 访问地址: http://127.0.0.1:18088" echo " 登录账号: admin@company.com" echo " 登录密码: admin123" echo "====================================================="