#!/bin/bash # SQL Server 2022 Linux Docker Compose 启动脚本 echo "==========================================" echo "SQL Server 2022 Linux Docker Compose 启动脚本" echo "==========================================" # 检查是否存在环境变量文件 if [ ! -f ".env" ]; then echo "警告: 未找到 .env 文件" echo "正在从 sqlserver.env 创建 .env 文件..." cp sqlserver.env .env echo "请编辑 .env 文件,特别是修改 SQLSERVER_SA_PASSWORD" echo "然后重新运行此脚本" exit 1 fi # 检查Docker是否运行 if ! docker info > /dev/null 2>&1; then echo "错误: Docker 未运行,请先启动 Docker" exit 1 fi # 检查Docker Compose是否可用 if ! command -v docker-compose &> /dev/null; then echo "错误: docker-compose 未安装" exit 1 fi echo "正在启动 SQL Server 2022..." echo "" # 创建必要的目录 echo "创建目录结构..." mkdir -p sqlserver/data sqlserver/logs sqlserver/backup sqlserver/web-config # 启动服务 echo "启动 Docker Compose 服务..." docker-compose -f docker-compose-sqlserver.yml --env-file .env up -d # 等待服务启动 echo "等待 SQL Server 启动..." sleep 10 # 检查服务状态 echo "" echo "检查服务状态..." docker-compose -f docker-compose-sqlserver.yml ps echo "" echo "==========================================" echo "启动完成!" echo "==========================================" echo "" echo "连接信息:" echo " 服务器: localhost" echo " 端口: $(grep SQLSERVER_PORT .env | cut -d'=' -f2)" echo " 用户名: sa" echo " 密码: $(grep SQLSERVER_SA_PASSWORD .env | cut -d'=' -f2)" echo " 示例数据库: SampleDB" echo "" echo "常用命令:" echo " 查看日志: docker-compose -f docker-compose-sqlserver.yml logs -f sqlserver" echo " 停止服务: docker-compose -f docker-compose-sqlserver.yml down" echo " 进入容器: docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '$(grep SQLSERVER_SA_PASSWORD .env | cut -d'=' -f2)'" echo "" echo "详细说明请查看 SQLServer-README.md"