剧作家不在 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 (将#修改为@)