2016-03-14 65 views
0

每次我使用ASP.NET Core应用程序构建Dockerfile时,它都会从Web Nuget存储库下载程序集。具有ASP.NET核心库的Docker容器

基本上我想创建所有这些ASP.NET核心库(也可能是我通常使用的一些库)的码头图像。

从我的理解我试图重塑GAC。

所以,我的问题是有可能使用像GAC一样的ASP.NET Core?或者,我的第二个想法是,将ASP.NET Core库下载到容器,然后以某种方式在本地解决它。

我的目标是缩短建造码头集装箱的时间。

UPDATE

看起来是不可能

回答

1

现在有一个来自微软的官方.NET Core Docker镜像,包含了所有需要的库。

你可以在这里得到它:

https://hub.docker.com/r/microsoft/aspnetcore/

如果您需要自定义它,不要忘了,你可以修改容器和创建“泊坞窗承诺”自定义图像。

5

对于ASP.NET核心只是用DNU来构建应用程序到一个独立的文件夹中。

dnu publish 

将输出构建项目并将其输出到/ bin/output。您可以选择多种选项,包括指定输出路径,选择框架或运行时,甚至更改启动Web的命令。

dnu publish --help 

会给你更多的细节。

+0

谢谢。这不完全是我想要做的。在这种情况下,我需要复制到容器约500 MB的简单的Web应用程序。我只想复制我的应用程序,所以像框架一样应该在另一个容器层。 –

+1

@VadimSentyaev:这个框架不像旧的.NET框架。它不是全局安装到机器上的;它从一个文件夹运行。所有的应用程序,包括webapps,都需要将框架放在一个给定的路径上。这意味着如果你尝试从应用程序中分离框架的路线,那么你将不得不从父容器管理路径并从应用程序层访问它们。当微软已经为你解决这个问题时,对你自己来说这是一件不合时宜的工作。这正是发布存在的原因。 – lkg

2

如果要包含一个“包”包含应用程序,它的依赖和运行,那么你必须运行(文件夹):

dnu publish --runtime <active/runtime name> [--no-source] 

--no-source选项编译的一切,并增加了启动时间,但删除了更改容器中代码的功能。