Auf die Docker-Multi-Container-Einrichtung mit ASP.NET Core 8.0-Web-API und SQL Server kann nicht über localhost zugegri
Posted: 27 Jan 2025, 07:02
Ich habe eine ASP.NET Core 8.0-Web-API, die SQL Server verwendet. Meine Projektstruktur sieht so aus:
Im Ordner "JobApplicationTracker" habe ich andere Dateien, einschließlich Programm.cs und JobApplicationTrackerAPI.csproj .
Wie Sie sehen, befindet sich Dockerfile mit diesen Daten in diesem Ordner: < /p>
-Datei enthält diese Daten:
Aber ich habe viele Informationsmeldungen zu SQL Server in meinem Cmd-Fenster (ich bin mir nicht sicher, ob es wichtig ist oder nicht).
Wenn ich dann zu meinem Docker-Desktop gehe, sehe ich, dass Container ausgeführt werden, sowohl SQL Server als auch Backend.
Wenn ich versuche, zu http://localhost:8080/ zu wechseln, wird Folgendes angezeigt
Diese Seite funktioniert nicht
Ich habe versucht, meinen Endpunkt wie http://localhost:8080/api/Lookup/statuses zu überprüfen, aber sie Funktioniert nicht.
Wenn Sie weitere Informationen benötigen, fragen Sie mich bitte, ich werde sie Ihnen zur Verfügung stellen.
Zum Erstellen eines Containers habe ich diesen Befehl ausgeführt :
Code: Select all
jobApplicationTrackerApi
- jobApplicationTracker (folder)
- .github
- jobApplicationTracker.sln
- docker-compose.yaml
and some other files.
Wie Sie sehen, befindet sich Dockerfile mit diesen Daten in diesem Ordner: < /p>
Code: Select all
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY jobApplicationTrackerApi.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /app
FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
EXPOSE 80
EXPOSE 7128
COPY --from=build /app .
ENTRYPOINT ["dotnet", "jobApplicationTrackerApi.dll"]
Code: Select all
docker-compose.yamlDie
Code: Select all
services:
app:
build:
context: ./jobApplicationTracker
dockerfile: Dockerfile
ports:
- "8080:80"
- "7128:8128"
environment:
- JobTrackerDb=Server=sqlserver,1433;Database=JobAppDb;User Id=sa;Password=pwd;TrustServerCertificate=True;
depends_on:
- sqlserver
sqlserver:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: sqlserver
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=pwd
healthcheck:
test: ["CMD-SHELL", "sqlcmd -S localhost -U sa -P pwd -Q 'SELECT 1'"]
interval: 10s
timeout: 10s
retries: 3
volumes:
- sql-data:/var/opt/mssql
volumes:
sql-data:
< /code>
Nachdem ich einen Container erstellt und starten kann, scheint alles in Ordnung zu sein. < /p>
[+] Running 2/2
✔ Container sqlserver Created 0.0s
✔ Container jobapplicationtrackerapi-app-1 Recreated 0.2s
app-1 | info: Microsoft.Hosting.Lifetime[14]
app-1 | Now listening on: http://[::]:8080
Wenn ich dann zu meinem Docker-Desktop gehe, sehe ich, dass Container ausgeführt werden, sowohl SQL Server als auch Backend.
Wenn ich versuche, zu http://localhost:8080/ zu wechseln, wird Folgendes angezeigt
Diese Seite funktioniert nicht
Ich habe versucht, meinen Endpunkt wie http://localhost:8080/api/Lookup/statuses zu überprüfen, aber sie Funktioniert nicht.
Wenn Sie weitere Informationen benötigen, fragen Sie mich bitte, ich werde sie Ihnen zur Verfügung stellen.
Zum Erstellen eines Containers habe ich diesen Befehl ausgeführt :
Code: Select all
docker-compose build