Steve
Steve

Reputation: 4513

This site can’t be reached - Docker

I have created the Containers / Apps

enter image description here

But when I run it, I got this error message: This site can’t be reached. localhost unexpectedly closed the connection. enter image description here

But when I run from Visual Studio, I can run it.

enter image description here

enter image description here

Extra troubleshooting steps is below enter image description here

This is docker file

FROM mcr.microsoft.com/dotnet/aspnet:5.0-focal AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-dotnet-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser

FROM mcr.microsoft.com/dotnet/sdk:5.0-focal AS build
WORKDIR /src
COPY ["WebApplication3/WebApplication3.csproj", "WebApplication3/"]
RUN dotnet restore "WebApplication3/WebApplication3.csproj"
COPY . .
WORKDIR "/src/WebApplication3"
RUN dotnet build "WebApplication3.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "WebApplication3.csproj" -c Release -o /app/publish /p:UseAppHost=false

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

Upvotes: 2

Views: 1490

Answers (1)

Hans Kilian
Hans Kilian

Reputation: 25344

By default, Swagger is only available when the app runs in development mode. Docker containers, by default, don't run in development mode.

Try accessing the API directly on http://localhost:49155/WeatherForecast

You can run the container in development mode by setting the environment variable ASPNETCORE_ENVIRONMENT to Development by adding the option -e ASPNETCORE_ENVIRONMENT=Development to your docker run command. Then Swagger should be available.

Upvotes: 3

Related Questions