不能访问我的Docker DotNet核心网站
我已经跑到死胡同了。 我有一个dotnet核心1.0.0应用程序,我试图启动和运行。 它从Linux和Windows的伟大作品。 现在我正试图把它放到docker。 我已经做了这个docker文件:
FROM microsoft/dotnet:1.0.0-preview2-sdk COPY . /app WORKDIR /app/app RUN ["dotnet", "restore"] ENTRYPOINT ["dotnet", "run"]
它只是简单地将代码复制到Docker镜像中的应用程序文件夹中并恢复依赖关系,然后运行它。 当我尝试运行它时,它启动,因为一切正常,并打印相同,因为它是在Windows或Linux启动。
运行该项目的命令:
docker run --name dotNetWeb -p 8080:8080 kiksen1987/dotnetcore
链接到代码: https : //github.com/kiksen1987/dotnetcore
链接到Docker镜像: https : //hub.docker.com/r/kiksen1987/dotnetcore/
我真的不知道什么是错的。 我或多或less采取了与其他项目99%相同的方法。
任何反馈来改善这个问题将是不错的:)
最后。
我发现这个博客文章: http : //dotnetliberty.com/index.php/2015/11/26/asp-net-5-on-aws-ec2-container-service-in-10-steps/
尽pipe它使用了旧版本的dotnet核心,但是我曾经监督过一个重要的观点:
请注意,我为dnx web命令提供了一个额外的参数,告诉它在0.0.0.0(而不是默认的本地主机)上提供服务。 这将允许我们的Web应用程序处理来自Docker提供的端口转发的请求,默认为0.0.0.0。
这是非常重要的。
解:
var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .UseUrls("http://0.0.0.0:5000") .Build();
旧代码:
var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .UseUrls("http://localhost:5000") .Build();
这是令人沮丧,因为它似乎在Linux和Windows和应用程序启动在Docker中完美,但从来没有得到任何请求。 希望这有助于其他一些可怜的灵魂:)
您可以在这里find一些有用的信息来build立一个自定义的图像与ASP.NET Core和Docker: https : //hahoangv.wordpress.com/2016/05/23/asp-net-core-run-in-docker/
Dockerfile:
FROM microsoft/dotnet:1.0.0-preview2-sdk # Set environment variables ENV ASPNETCORE_URLS="http://*:5000" ENV ASPNETCORE_ENVIRONMENT="Development" # Copy files to app directory COPY . /app # Set working directory WORKDIR /app # Restore NuGet packages RUN ["dotnet", "restore"] # Open up port EXPOSE 5000 # Run the app ENTRYPOINT ["dotnet", "run"]
和Program.cs文件:
public static void Main(string[] args) { // Get environment variables var config = new ConfigurationBuilder() .AddEnvironmentVariables("") .Build(); // You need to add these lines for accessing outside of Docker var url = config["ASPNETCORE_URLS"] ?? "http://*:5000"; var env = config["ASPNETCORE_ENVIRONMENT"] ?? "Development"; var host = new WebHostBuilder() .UseKestrel() .UseUrls(url) .UseEnvironment(env) .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup<Startup>() .Build(); host.Run(); }
希望这个帮助!
- 鉴于下面描述的错误,人们如何在Ubuntu / Docker的ASP.NET Core Web API中进行身份validation?
- 不能通过VS2015运行networking核心docker集装箱
- 如何在Docker容器中保持.NET Core控制台应用程序活着
- VS 2017添加> Docker支持rest生成 – “CleanWorkspace”任务意外失败(控制台应用程序)
- 只是因为一个程序有一个graphics用户界面是否意味着它会崩溃在Windows泊坞窗?
- 当应用程序在具有aspnetcore的泊坞窗容器中退出时返回和错误代码
- 运行Windows应用程序的Docker
- 如何在.NET核心可执行文件中监听来自Docker的信号?
- 启动时出现Dotnetcore容器错误,询问是否运行SDK命令