0

我正在尝试为我的剧作家测试创建一个 docker 映像,这是一个使用 xunit 的 .net 5 项目。

当我尝试启动 docker 映像时,出现以下错误

The specified task executable "sh" could not be run. System.IO.DirectoryNotFoundException: The working directory "/publish/.playwright/unix/native" does not exist. [/src/MyProject/MyProject.Core.csproj]

这是我的码头文件

FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /src
COPY ["MyProject.Core.csproj", ""]
RUN dotnet restore "MyProject.Core.csproj"
COPY . .
WORKDIR "/src"
RUN dotnet build "MyProject.Core.csproj" -c Debug -o /publish
    
FROM mcr.microsoft.com/playwright:v1.9.1-focal AS playwright

COPY --from=build /publish/ /app/
RUN chown -R pwuser:pwuser /app
run dotnet test /app/MyProject.Core.csproj

它似乎来自 nuget 包中的 playwrightSharp.targets 文件。我试图注释掉目标,但我认为它必须被缓存在某个地方,因为它的行为就像它没有被注释掉一样。我什至尝试删除目标文件但仍然收到错误:

/root/.nuget/packages/playwrightsharp/0.192.0/build/netstandard2.0/PlaywrightSharp.targets(18,5): error MSB6003:

似乎 /root 会在 docker 映像中?我对码头工人的了解不够,甚至不知道去哪里找。

任何帮助,将不胜感激!谢谢

4

1 回答 1

1

当我卸载并安装 Microsoft.Playwright 时,我似乎正在使用一个名为 Playwright 的折旧 nuget 包,它按预期工作。

于 2021-06-12T18:01:53.703 回答