使用 Docker compose 时出现 SQL 服务器连接错误

问题描述 投票:0回答:0

我正在构建一个 Blazor Server 应用程序,并决定将 MS SQL 容器化为数据库。

下面是我的 docker-compose 和 appsettings.json

Docker 撰写:

version: '3.4'

services:
  NAME.webapp:
    container_name: NAME.app
    image: ${DOCKER_REGISTRY-}NAMEwebapp
    build:
      context: .
      dockerfile: NAME.WebApp/Dockerfile
    ports:
     - "8001:80"
    depends_on:
     - NAME.db
  NAME.db:
    restart: on-failure
    container_name: NAME.db
    image: mcr.microsoft.com/mssql/server:2022-latest
    ports:
     - "8002:1433"
    environment:
     - ACCEPT_EULA=Y
     - MSSQL_SA_PASSWORD=********
    volumes:
     - NAME-db:/var/lib/sqlserver/data
volumes:
  NAME-db:

docker-compose-override.yml:

version: '3.4'

services:
  NAME.webapp:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ConnectionStrings__DefaultConnection=Server=NAME.db,8002;Database=NAMEdb;User Id=sa;Password=********;Encrypt=False
    ports:
      - "80"

appsettings.json:

"Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "InventoryManagement": "Server=localhost,8002; Database=NAMEdb; User Id=sa; Password=********; Encrypt=False"
  }

现在当我通过 docker 运行我的程序时,我得到这个错误: 处理请求时发生未处理的异常。 SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供商:TCP 提供商,错误:40 - 无法打开与 SQL Server 的连接:无法打开与 SQL Server 的连接)

我的应用程序和数据库容器都在 Docker Desktop 中运行,但是当我尝试使用 DBeaver 重新连接到数据库时,出现以下错误: “无法打开登录请求的数据库“NAMEdb”。登录失败。ClientConnectionId:4502489a-4610-4641-ad9f-2f0936eaf1c0”

最初,通过此设置,我能够连接到 DBeaver 并查看我的数据库和任何添加的条目。 但是,最近我出于其他原因下载并安装了 SQL Server Express 和 SSMS,我怀疑这可能与错误有关。

这里是 SQL Server docker hub 图像的链接:https://hub.docker.com/_/microsoft-mssql-server

我尝试在通过 SQL Server 配置管理器停止 SQL Server (SQLEXPRESS) 后运行该项目,也尝试运行 SQL Server (SQLEXPRESS)。

尝试删除两个容器并重新启动。

尝试将 repo 克隆到不同的文件夹并启动该项目。

尝试将 DBeaver 中的身份验证从 SQL Server 身份验证更改为 Windows 身份验证,但没有成功。

尝试将 MSSQL_PID 从默认设置为 Express(开发人员)

我的密码符合 docker hub 文档中的要求。

我想知道是否有一个修复程序可以让我的代码与 docker 一起工作,而不是使用我的本地 SQL Server。

谢谢!

.net sql-server docker database-connection blazor-server-side
© www.soinside.com 2019 - 2024. All rights reserved.