Cześć,
mam problem z prawidłową konfiguracją dockera... i chciałbym Was prosić o pomoc.
Zacznijmy jednak od początku.
Przed instalacją dockera mam dwa projekty - WebApi oraz WebApp. Dodatkowo jest też baza MSSQL.
I wszystko działa jak powinno.
WebAPI działa na porcie 5173. Odpowiedni wpis w launchSettings.json wygląda tak:
"applicationUrl": "http://localhost:5173"
Natomiast WebApp działa na porcie 5230. Wpis w launchSettings.json wygląda tak:
"applicationUrl": "http://localhost:5230"
I wszystko działa - gdy wpisuję w przeglądarce zarówno http://localhost:5173 jak i http://localhost:5230.
Teraz chciałbym dodać obsługę dockera. Dodałem docker-compose, który wygląda tak:
services:
mssql:
image: mcr.microsoft.com/mssql/server:2019-CU15-ubuntu-20.04
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: password
MSSQL_PID: Express
ports:
- "1433:1433"
webapi:
image: ${DOCKER_REGISTRY-}webapi
build:
context: .
dockerfile: WebApi/Dockerfile
ports:
- "5173:80"
depends_on:
- mssql
webapp:
image: ${DOCKER_REGISTRY-}webapp
build:
context: .
dockerfile: WebApp/Dockerfile
ports:
- "5230:80"
A jeżeli chodzi o plik dockerfile, to np. dla WebApp wygląda on tak:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["WebApp/WebApp.csproj", "WebApp/"]
RUN dotnet restore "WebApp/WebApp.csproj"
COPY . .
WORKDIR "/src/WebApp"
RUN dotnet build "WebApp.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "WebApp.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY /app/publish .
ENTRYPOINT ["dotnet", "WebApp.dll"]
W dockerze pojawił się odpowiedni kontener, ale tylko MSSQL działa jak należy (mogę się z nim połączyć przez MSSMS).
Gdy przejdę do zakładki "Inspect", to w przypadku WebApi mam takie wpisy dla portów:
443/tcp 0.0.0.0:51023
80/tcp 0.0.0.0:51024
80/tcp 0.0.0.0:5173
a dla WebApp mam:
443/tcp 0.0.0.0:51022
80/tcp 0.0.0.0:51021
80/tcp 0.0.0.0:5230
Jednak jak próbuję wejść na stronę http://localhost:5173/ czy http://localhost:5230/
to mam komunikat:
Przerwane połączenie
Połączenie z serwerem zostało zresetowane podczas wczytywania strony.
Witryna może być tymczasowo niedostępna lub przeciążona. Spróbuj ponownie za pewien czas.
Jeśli nie możesz otworzyć żadnej strony, sprawdź swoje połączenie sieciowe.
Jeśli ten komputer jest chroniony przez zaporę sieciową lub serwer proxy, należy sprawdzić, czy Firefox jest uprawniony do łączenia się z Internetem.
Co zrobiłem źle? Bardzo proszę o nakierowanie mnie na rozwiązanie problemu :)