Ale*_*tov 31 docker asp.net-core
当“dockerizing”一个ASP.NET Core 3.1 MVC应用程序时,我得到了以下结果:
docker run -dt -v "C:\Users\admin\vsdbg\vs2017u5:/remote_debugger:rw" -v "D:\xxx\yyy\Spikes\DockerizedWebApp1\DockerizedWebApp1:/app" -v "D:\xxx\yyy\Spikes\DockerizedWebApp1:/src/" -v "C:\Users\admin\.nuget\packages\:/root/.nuget/fallbackpackages2" -v "C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages" -e "DOTNET_USE_POLLING_FILE_WATCHER=1" -e "ASPNETCORE_LOGGING__CONSOLE__DISABLECOLORS=true" -e "ASPNETCORE_ENVIRONMENT=Development" -e "NUGET_PACKAGES=/root/.nuget/fallbackpackages2" -e "NUGET_FALLBACK_PACKAGES=/root/.nuget/fallbackpackages;/root/.nuget/fallbackpackages2" -P --name DockerizedWebApp1 --entrypoint tail dockerizedwebapp1:dev -f /dev/null
docker: Error response from daemon: status code not OK but 500: {"Message":"Unhandled exception: Drive has not been shared"}.
See 'docker run --help'.
C:\Users\admin\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.10.6\build\Container.targets(198,5): error CTC1015: Docker command failed with exit code 125.
C:\Users\admin\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.10.6\build\Container.targets(198,5): error CTC1015: docker: Error response from daemon: status code not OK but 500: {"Message":"Unhandled exception: Drive has not been shared"}.
C:\Users\admin\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.10.6\build\Container.targets(198,5): error CTC1015: See 'docker run --help'.
C:\Users\admin\.nuget\packages\microsoft.visualstudio.azure.containers.tools.targets\1.10.6\build\Container.targets(198,5): error CTC1015: If the error persists, try restarting Docker Desktop.
Run Code Online (Sandbox Code Playgroud)
不用说' docker run --help '根本没有帮助(Docker 文档中缺少链接/锚点等)。
一些额外的信息:
因为我不熟悉 Linux,所以这个错误对我来说就像是一个“表演者”。也许 Linux 没有被指示挂载驱动器?但哪一个?消息没有说...
也许 Windows 必须共享驱动器,或者将文件夹映射到需要共享的驱动器?消息也没有说这个......
这是 Docker 仪表板的屏幕截图:
这是 Dockerfile:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["DockerizedWebApp1/DockerizedWebApp1.csproj", "DockerizedWebApp1/"]
RUN dotnet restore "DockerizedWebApp1/DockerizedWebApp1.csproj"
COPY . .
WORKDIR "/src/DockerizedWebApp1"
RUN dotnet build "DockerizedWebApp1.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerizedWebApp1.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerizedWebApp1.dl"]
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激。提前致谢!
BMi*_*tch 30
docker run 命令包括来自 C 驱动器的卷,例如-v "C:\Users\admin\vsdbg\vs2017u5:/remote_debugger:rw"
. 为了使这些工作,您需要在共享驱动器中包含 C 驱动器(选中设置 -> 资源 -> 文件共享下的框)。您还可以将要共享的文件移动到已共享到嵌入式 VM 的 D 驱动器,尽管在这种情况下这可能不是一个选项。要知道要共享哪些驱动器,请在运行命令中检查卷安装中使用的驱动器。
在适用于 Windows 的先前版本的 docker 中,这会默默地成功并将一个空文件夹安装到容器中。所以告诉用户首先检查共享驱动器的错误是一个很好的改进。
Ale*_*tov 16
使驱动器 C:可用于 Docker仪表板中的Docker 容器解决了问题,再次查看未选中的图片。
但是,恕我直言,必须分享一些评论。
可能存在一个非常简单的解释,为什么会显示这条非常无用的消息——Linux 开发人员输入了很多(CLI!)并且对此不太满意,他们没有输入足够的内容来为用户提供有意义的诊断。
好吧,我确实相信我是不对的,但仍然必须解释为什么最终产品中会出现如此巨大的遗漏。
小智 1
从输出中拉出长的“docker run ... /dev/null”命令,并在启用 docker 的命令提示符下自行运行它。然后,Docker 桌面应提示允许共享/网络访问。在此之前,您可能需要重新启动 Docker Desktop 应用程序。
归档时间: |
|
查看次数: |
22715 次 |
最近记录: |