docker容器C#应用程序外部的连接被拒绝
我在C#.Net内核(v3.1)中有一个应用程序,当我运行它时。它很好用 当我在docker容器中启动它时,它在容器中运行良好,但在尝试调用容器外部的端点时,我遇到了一个错误docker容器C#应用程序外部的连接被拒绝,c#,docker,.net-core,dockerfile,C#,Docker,.net Core,Dockerfile,我在C#.Net内核(v3.1)中有一个应用程序,当我运行它时。它很好用 当我在docker容器中启动它时,它在容器中运行良好,但在尝试调用容器外部的端点时,我遇到了一个错误连接被拒绝 我的命令 docker build . -t project docker run project -p 23183:23183 我的程序.cs using System.IO; using Microsoft.AspNetCore.Hosting; namespace project { publi
连接被拒绝
我的命令
docker build . -t project
docker run project -p 23183:23183
我的程序.cs
using System.IO;
using Microsoft.AspNetCore.Hosting;
namespace project
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseKestrel()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
不确定你的问题到底是什么,但这就是我的docker文件的样子。希望有帮助:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["path/to/project.csproj", "project/"]
COPY . .
WORKDIR "/src/project"
FROM build AS publish
RUN dotnet publish "project.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "project.dll"]
我认为您必须在入口点数组(Dockerfile)中使用
--URL
作为参数@stefan我试过了,但没有让我明白这一点-您无法从本地pc访问localhost:23183
上的API?@rytisk是的。为什么您不;'t调用dotnet restore?如果愿意,您可以,但对我来说,它是在构建步骤中完成的抱歉,它实际上是在运行dotnet发布
步骤中完成的
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 as base
COPY . /app
WORKDIR /app
EXPOSE 23183/tcp
ENV ASPNETCORE_URLS http://*:23183
# Build
FROM base as build
WORKDIR /src
COPY *.sln ./
COPY project/project.csproj project/
RUN dotnet restore
COPY . .
WORKDIR /src/project
# Publish
FROM build AS publish
RUN dotnet publish -c Release -o /app/out
FROM base AS final
WORKDIR /app
COPY --from=publish /app/out ./
ENTRYPOINT ["dotnet", "project.dll", "--server.urls", "http://0.0.0.0:23183"]
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["path/to/project.csproj", "project/"]
COPY . .
WORKDIR "/src/project"
FROM build AS publish
RUN dotnet publish "project.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "project.dll"]