docker мс sql контейнер и веб-API - PullRequest
0 голосов
/ 13 июля 2020

Я выполнил шаги, описанные в этом руководстве: https://docs.microsoft.com/en-us/sql/linux/tutorial-restore-backup-in-sql-server-container?view=sql-server-ver15, чтобы создать контейнер с моей личной резервной копией базы данных. Эта часть работает правильно, и я могу подключиться к базе данных через SSMS, используя следующие учетные данные:

  • Имя сервера: localhost, 1433 ИЛИ 172.0.0.1,1433 (оба работают)
  • Имя пользователя: sa
  • Пароль: мой пароль

Затем я создал приложение веб-API с этим файлом Docker

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as build-env
WORKDIR /src

COPY *.csproj ./
RUN dotnet restore

COPY . ./
RUN dotnet publish -c Release -o out

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /src
COPY --from=build-env /src/out .
ENTRYPOINT ["dotnet",'MyApp.Api.dll"]

Это моя строка подключения в настройках приложения . json

"Server=localhost,1433;Database=MyDB;User Id=sa;Password=PASSWORD"

Однако я продолжаю получать эту ошибку при запуске контейнера веб-API:

fail: Microsoft.EntityFrameworkCore.Database.Connection[20004]

An error occurred using the connection to database 'MyDB' on server 'localhost,1433'.

fail: Microsoft.EntityFrameworkCore.Query[10100]

An exception occurred while iterating over the results of a query for context type 'NAMESPACE.MyContext'.

Microsoft.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)

Я уже пробовал изменить строку подключения для подключения по имени вместо localhost или IP (я использовал sql1, который является именем контейнера, но все еще не работает)

Поскольку я новичок в Docker и контейнерах, потребуется ли для этого типа настройки Docker Составить файл? или он должен работать так, как сейчас?

Нашел этот ответ: доступ к контейнеру docker из другого контейнера Может быть, кто-то может подтвердить, является ли это способом go?

...