Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker映像上找不到wwwroot中的资产_Docker_Asp.net Core - Fatal编程技术网

在Docker映像上找不到wwwroot中的资产

在Docker映像上找不到wwwroot中的资产,docker,asp.net-core,Docker,Asp.net Core,我已经启动并运行了Linux VM Docker映像,但我遇到了一个困难 找不到我的wwwroot文件夹中的所有资产 加载资源失败:服务器响应状态为404(未找到) 我包括 "webroot": "wwwroot" 但这并不能解决问题。还有一件事是VS 2015(在ISS Express上)运行时一切正常-Dockerfile中是否也应该包含一些内容 编辑: 我将卷添加到docker文件中,但没有帮助: FROM microsoft/aspnet COPY . /app WORKDIR /

我已经启动并运行了Linux VM Docker映像,但我遇到了一个困难

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

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

我包括

 "webroot": "wwwroot"
但这并不能解决问题。还有一件事是VS 2015(在ISS Express上)运行时一切正常-Dockerfile中是否也应该包含一些内容

编辑:

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

FROM microsoft/aspnet

COPY . /app
WORKDIR /app
RUN ["kpm", "restore"]

VOLUME ["/wwwroot"]

EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]

您是否正在完成以下示例:?我对asp不太了解,但是,我认为你们非常接近。首先,我认为您不需要修改Dockerfile。您总是可以装载卷,volume关键字只是在必要时声明它。但是,您确实需要修改project.json文件,如图所示,但有一个区别:

"webroot": "/webroot"
我假设名称为“webroot”,要查找(项目)的目录为“/webroot”。然后,构建它,如示例所示:

docker build -t myapp .
因此,在运行此操作时,请执行以下操作:

docker run -t -v $(pwd)/webroot:/webroot -d -p 80:5004 myapp 
这个docker运行命令的作用是从当前目录($pwd)中获取webroot目录,并将其装载到容器中,然后调用mount/webroot。换句话说,您的容器必须引用/webroot(而不是webroot,我认为这是相对于WORKDIR的)


我认为底线是这里发生了两件事。第一个是“构建”映像,第二个是运行映像。当您运行它时,您提供了要装入的卷。只要您的应用程序将project.json文件的“webroot”值作为查找网页的位置,那么这将起作用。

您是否将其声明为卷?(如中所示)不,我没有-我应该考虑更多的声明吗?仅仅将目录声明为卷并不会将任何内容放在那里。您需要将文件放入此目录或使用-v选项将此卷映射到本地目录-我无法从wwwroot文件夹中获取要加载到映像中的文件。。。不幸的是,提供的文档并不能帮助您获取文件,因为您需要先将文件放在那里,并且提供的文档显示了如何将文件放在那里的一种方法。你创建了一个空文件夹,现在抱怨文件夹是空的。在vNext(asp.net 5)中,所有的文件,如.css和javasripts都存储在wwwroot中,但是我尝试了这个命令却没有成功:(docker run-t-v$(pwd)/wwwroot:/webroot-d-p 80:5004 myapp或docker run-t-v$(pwd)/wwwroot:/wwwroot-d-p 80:5004 myappI在project.json webroot中也已更改为“webroot”,并尝试了命令,但仍然没有/webroot,对吗?然后您进行了构建,然后运行,如我所列?我将webroot放在了不带/-的位置,因为当我使用/json测试它时,我发现一些错误,该文件夹不存在(明天早上的第一件事我会再做一次,让你知道)很遗憾,我忘了使用app.UseStaticFiles();StartUp.cs现在工作了吗