用途:把 Azure SQL Database 容器(Private Preview)作为 sidecar 加入现有 Docker Compose stack 或 Dev Container,供应用按服务名访问。注意这是 Azure SQL Database 引擎,不是 SQL Server 镜像 mcr.microsoft.com/mssql/server;SERVERPROPERTY('EngineEdition') 返回 5,Edition 为 'SQL Azure'。
主要能力与用法:镜像为 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest(x64 / linux/amd64,注册表与 tag 在预览期可能变动)。需先登录私有注册表:docker login sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io,凭据需在 https://aka.ms/sqldbcontainerpreview-signup 注册 Private Preview 后获取(可能轮换)。在 compose.yaml 中新增 sqldb、sqldb-init,并给 app 加 depends_on。必要环境变量:ACCEPT_EULA=Y 和复杂 MSSQL_SA_PASSWORD(8 位以上,含大小写、数字、符号)。引擎监听 1433。
关键限制:引擎不自动创建数据库,也不执行 /docker-entrypoint-initdb.d/*.sql。必须在 master 连接上用 sqldb-init 一次性执行 CREATE DATABASE appdb(如 IF DB_ID('appdb') IS NULL CREATE DATABASE appdb;),再由应用以 Database=appdb 连接。用户数据库会话中 USE 会返回 Msg 40508(与云端 Azure SQL Database 一致),应始终在连接串中指定目标数据库,sqlcmd 用 -d appdb。应用连接串示例:Server=sqldb,1433;Database=appdb;User Id=sa;Password=YourStr0ng_Passw0rd;TrustServerCertificate=true。健康检查使用 /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -C -b -l 2 -Q "SELECT 1";app 需以 condition: service_healthy 与 service_completed_successfully 作为依赖门槛。两个服务均需 platform: linux/amd64。
Dev Container 使用 Compose 作为后端(dockerComposeFile、service、runServices、remoteEnv)。
验证:启动后要求一次成功数据库往返并确认 sidecar 使用声明端点;清理时停止移除服务、网络与临时配置。除上述内容外,其他细节暂未提供。