#.net #sql-server #odbc
#.net #sql-сервер #odbc
Вопрос:
Когда я подключаюсь к базе данных SQL Server с подключением odbc с помощью docker, я получаю эту ошибку:
ОШИБКА [42000] [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Не удается открыть базу данных»», запрошенную при входе в систему. Ошибка входа в систему.
Мой файл docker выглядит так:
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build-env WORKDIR /app # Copy csproj and restore as distinct layers EXPOSE 80 ENV ASPNETCORE_URLS=http:// :80 COPY *.csproj ./ RUN dotnet restore # Copy everything else and build COPY . . RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:5.0 WORKDIR /app COPY --from=build-env /app/out . ENTRYPOINT ["dotnet", "Api.dll" ,"--environment=Development"] RUN mkdir -p /usr/share/man/man1 RUN apt-get update RUN apt-get -y install gcc default-jre graphviz libgraphviz-dev graphviz-dev pkg-config RUN apt-get install --reinstall build-essential -y #install sqlcmd and odbc and others RUN apt-get update amp;amp; apt-get install -y --no-install-recommends unixodbc-dev unixodbc libpq-dev RUN apt-get -y install curl RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - RUN curl https://packages.microsoft.com/config/debian/10/prod.list gt; /etc/apt/sources.list.d/mssql-release.list RUN apt-get update RUN ACCEPT_EULA=Y apt-get install msodbcsql17 RUN ACCEPT_EULA=Y apt-get install mssql-tools RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' gt;gt; ~/.bash_profile RUN echo 'export PATH="$PATH:/opt/mssql-tools/bin"' gt;gt; ~/.bashrc RUN chmod rwx /etc/ssl/openssl.cnf RUN sed -i 's/TLSv1.2/TLSv1/g' /etc/ssl/openssl.cnf RUN sed -i 's/SECLEVEL=2/SECLEVEL=1/g' /etc/ssl/openssl.cnf
и мой файл docker compose выглядит так
version: "3.4" services: web: build: context: ./ dockerfile: Dockerfile ports: - "8080:80" volumes: - ./wwwroot:/app/wwwroot environment: - DATABASE_TYPE=MsSql - DATABASE_NAME= mydb - DATABASE_WAREHOUSE= - DATABASE_ROLE= - CONNECTION=Driver={ODBC Driver 17 for SQL Server};server=192.168.0.125\sql2017,1433;database=mydb;uid=user;pwd=admin - CONNECTION_TYPE=odbc
Комментарии:
1.
server=192.168.0.125\sql2017,1443;
похоже на несколько опечаток, потому что а) именованные экземпляры не работают в контейнерах SQL Server для докеров Linux (служба браузера SQL не прослушивает udp/1434) и б) порт прослушивания SQL Server-1433.2. Где ваш файл Dockerfile для контейнера SQL Server? Вы где-то создаете/восстанавливаете
mydb
базу данных?3. я использовал образ sql, который также не работает
4. Вы где-то создаете/восстанавливаете
mydb
базу данных? SQL Server не создает новую базу данных во время входа в систему только потому, что кто-то просит об этом, ответственные администраторы сервера создают их с соответствующими настройками, расположением файлов и ограничениями ресурсов.5. в моем местном он работает нормально. но когда я помещаю это в докер, я получаю эту ошибку