Ich habe eine ASP.NET Core 8.0-Web-API, die SQL Server verwendet. Meine Projektstruktur sieht so aus:
Code: Select all
jobApplicationTrackerApi
- jobApplicationTracker (folder)
- .github
- jobApplicationTracker.sln
- docker-compose.yaml
and some other files.
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>
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"]
-Datei enthält diese Daten:
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
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 :
Ich habe eine ASP.NET Core 8.0-Web-API, die SQL Server verwendet. Meine Projektstruktur sieht so aus:
[code]jobApplicationTrackerApi
- jobApplicationTracker (folder)
- .github
- jobApplicationTracker.sln
- docker-compose.yaml
and some other files.
[/code]
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>
[code]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]
[code]docker-compose.yamlDie [/code]-Datei enthält diese Daten:
[code]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
[/code]
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]docker-compose build
[/code]