Can not connect to Docker SQL Server from Docker ASP.NET Core 3.1

1

The main reason why I am asking this is because I have tried literally everything.

Here is my configuration:

Configuration string

"Server=db-server;Database=TestDB;User=sa;Password=Test1234;SslMode=None;"

docker-compose:

version: "3.5"

networks:
    localdev:
        name: localdev

services:
    main-api:
        build:
            context: .
            dockerfile: src/TestApp/Dockerfile
        restart: always
        ports:
            - "5001:5001"
        environment:
            ASPNETCORE_ENVIRONMENT: "Development"
            ASPNETCORE_URLS: "http://+:5001"
        depends_on:
            - db-server
        networks:
            - localdev
        volumes:
            - ./tmp:/app/tmp

    db-server:
        image: "mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04"
        container_name: db-server
        environment:
            ACCEPT_EULA: "Y"
            SA_PASSWORD: "Test1234"
        ports:
            - "1400:1433"
        networks:
            - localdev

Dockerfile


FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-bionic AS base

RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf
RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /usr/lib/ssl/openssl.cnf

WORKDIR /app
EXPOSE 5001

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-bionic AS build
WORKDIR /src
COPY ["src/TestApp.API/TestApp.API.csproj", "src/TestApp.API/"]
COPY ["src/TestApp.Infrastructure/TestApp.Infrastructure.csproj", "src/TestApp.Infrastructure/"]
COPY ["src/TestApp.Domain/TestApp.Domain.csproj", "src/TestApp.Domain/"]
COPY ["src/TestApp.ApplicationCore/TestApp.ApplicationCore.csproj", "src/TestApp.ApplicationCore/"]
RUN dotnet restore "src/TestApp.API/TestApp.API.csproj"
COPY . .
WORKDIR "/src/src/TestApp.API"
RUN dotnet build "TestApp.API.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "TestApp.API.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "TestApp.API.dll"]

I also go into my db-server container after docker-compose build and create TestDB, then I check and I can connect to that database from my host SSMS, but whenever I try to run my TestApp container, I get this error there

Host terminated unexpectedly
main-api_1 | Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'sa'.

and also in my database server logs I find this error

Login failed for user 'sa'. Reason: Password did not match that for the login provided.

I tried literally everything. As you can see, I changed to bionic docker images, tried to follow this, but nothing works. Password is correct, as I can connect to the cli inside container I use following password and I can use that password from my host machine as well - but not from TestApp container.

c#
docker
asp.net-core
.net-core
asked on Stack Overflow Jun 11, 2020 by Joffarex • edited Jun 11, 2020 by marc_s

1 Answer

1

It appears that i am dumb and was changing password in appsettings.json and not in appsettings.Development.json, and that happened because Visual Studio hides that file under appsettings.json.

answered on Stack Overflow Jun 12, 2020 by Joffarex

User contributions licensed under CC BY-SA 3.0