我已经启动并运行了Linux VM Docker Image,但我遇到了一个难以理解的问题。
无法找到我的wwwroot文件夹中的所有资产
无法加载资源:服务器响应状态为404(未找到)
我已经包含了
"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"]
答案 0 :(得分:2)
您是否正在使用此示例:asp?我不太了解asp,但是,我认为你非常接近。首先,我认为你不需要修改Dockerfile。您可以随时装入卷,VOLUME关键字只是在必要时声明它。但是,您需要像您所示的那样修改project.json文件,但有一点不同:
-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters
-- command (Ctrl-Shift-M) to fill in the parameter
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE InsetIntoTwoTable
(
@name nvarchar(50),
@Email nvarchar(50)
)
AS
BEGIN
SET NOCOUNT ON;
insert into dbo.info(name) values (@name)
insert into dbo.login(Email) values (@Email)
END
GO
我假设名称是" webroot"并且要查看的目录(对于项目)是" / webroot"。然后,构建它,如示例所示:
"webroot": "/webroot"
所以,当你运行它时:
docker build -t myapp .
此docker run命令执行的操作是从当前目录($ pwd)获取您的webroot目录,并将其安装在容器中并调用mount / webroot。换句话说,你的容器必须引用/ webroot(不是webroot,我认为这与WORKDIR相关)。
我认为最重要的是这里有两件事情。第一个是“建筑物”。图像,第二个正在运行它。运行它时,您提供要安装的卷。只要您的应用程序重复了project.json文件" webroot"值作为查找网页的地方然后这将起作用。