Docker Image上找不到来自wwwroot的Assetss

我已经得到了Linux VM Docker Image,但是我遇到了一个困难。

我的wwwroot文件夹中的所有资产都找不到

加载资源失败:服务器响应状态为404(未find)

我已经包括在内

"webroot": "wwwroot" 

在project.json文件中,但没有解决问题。 还有一件事是从VS 2015(在ISS Express上)运行一切正常 – 是否有我应该包括在Dockerfile中的东西?

编辑:

我将VOLUME添加到docker文件,但没有帮助:

 FROM microsoft/aspnet COPY . /app WORKDIR /app RUN ["kpm", "restore"] VOLUME ["/wwwroot"] EXPOSE 5004 ENTRYPOINT ["k", "kestrel"] 

你在这里通过例子工作: asp ? 我对asp不太了解,但是我觉得你们差不多。 首先,我不认为你需要修改Dockerfile。 您可以随时挂载音量,VOLUME关键字只是在必要时声明。 但是,你需要修改你的project.json文件,就像你所显示的那样,有一点不同:

 "webroot": "/webroot" 

我假设这个名字是“webroot”,查找目录(对于项目)是“/ webroot”。 然后,构build它,如示例所示:

 docker build -t myapp . 

所以,当你这样做的时候:

 docker run -t -v $(pwd)/webroot:/webroot -d -p 80:5004 myapp 

这个docker run命令所做的是从当前目录($ pwd)取得你的webroot目录,并把它挂载在容器中,并调用mount / webroot。 换句话说,你的容器必须引用/ webroot(不是webroot,相对于我认为的WORKDIR)。

我认为底线是这里有两件事。 第一个是“build立”形象,第二个是运行它。 当你运行它时,你提供了你想要挂载的音量。 只要你的应用程序重复project.json文件的“webroot”值作为寻找网页的地方,那么这将工作。