【问题标题】:ASP.NET Core 1.0 RC1 Docker with dnu publish带有 dnu 发布的 ASP.NET Core 1.0 RC1 Docker
【发布时间】:2016-06-24 02:18:37
【问题描述】:

我已经发布了一个 asp.net vnext 应用程序,使用,

dnu 发布 --runtime 1.0.0-rc1-update1 --framework dnxcore50 --no-source

之后如果我生成一个 docker 容器,

来自 microsoft/aspnet:1.0.0-rc1-update1-coreclr

添加 ./bin/output/approot /app WORKDIR /app

暴露 8080 入口点 ["./web1"]

如果我使用“docker run”命令运行它,那么我发现 System.Net.Security 存在问题。我还阅读了一些与部署到 Linux 相关的问题,以及一些关于如何在 LINUX 操作系统(例如:Ubuntu)中使用 linux 运行时进行“dnu 发布”的博客。

如果我必须在 LINUX 操作系统中构建以 LINUX 为目标,那么这超出了跨平台的目的。在我也读过的一些博客中,只需从源代码进行 dnu restore 就足够了,问题是我有一个复杂的源文件夹设置,我不想为 Dockerfile 编写长构建脚本来帮助我复制所有需要的源+依赖的源项目,然后创建应用的DNX镜像(非常繁琐)。

有人对此有简单的解决方案吗?

【问题讨论】:

  • 你为linux恢复了吗? (即您是否使用了 --runtime 参数)?您发布的机器上是否安装了 linux 运行时?如果您不这样做,那么发布将没有任何地方可以从中获取 linux 运行时?

标签: docker asp.net-core


【解决方案1】:

我发现问题出在 System.Net.Security 包的 nuget 包装上。 https://www.nuget.org/packages/System.Net.Security/4.0.0-beta-23516

这个版本不包含dnxcore50的包,但是之前的版本已经定义了,

https://www.nuget.org/packages/System.Net.Security/4.0.0-beta-23409

降级使用这个,这个问题就解决了。嗬! MS 团队的愚蠢问题。

【讨论】:

    猜你喜欢
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    相关资源
    最近更新 更多