如何解决剧作家不在 asp.net 核心应用程序的 docker 容器中工作
我创建了一个简单的 Asp.net 核心应用程序,并想在我的项目中测试 playwright。它在本地环境中工作正常,但是当我尝试在 docker 容器中部署时,错误为 Driver not found: /app/.playwright/node/linux/playwright.sh
。
Test.csproj
<ItemGroup>
<PackageReference Include="Microsoft.Playwright" Version="1.12.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.13" />
</ItemGroup>
Docker 文件
FROM mcr.microsoft.com/dotnet/aspnet:3.1-bionic AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS build
WORKDIR /src
COPY ["Test.csproj","./"]
RUN dotnet restore "./Test.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "Test.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "Test.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet","Test.dll"]
SampleApplication.cs
public async Task<string> Get()
{
try
{
using var playwright = await Playwright.CreateAsync();
await using var browser = await playwright.Chromium.LaunchAsync(new BrowserTypeLaunchOptions
{
Headless = false,SlowMo = 250,Args = new[] { "--disable-dev-shm-usage","--no-sandbox","--user pwuser" },});
var page = await browser.NewPageAsync();
// Navigate to the home page
await page.GotoAsync("https://www.facebook.com/");
await page.WaitForTimeoutAsync(10000);
}
catch (Exception e)
{
return e.Message.ToString();
}
return "This will open facebook page";
}
}
感谢任何帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。