我正在尝试创建。net 5.0 docker图像与剧作家。这是我的DockerFile:
FROM mcr.microsoft.com/dotnet/runtime:5.0-buster-slim AS base
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["Agent.csproj", "Agent/"]
RUN dotnet restore "Agent/Agent.csproj"
COPY . "/src/Agent"
WORKDIR "/src/Agent"
RUN apt-get update -yq && apt-get upgrade -yq && apt-get install -yq curl git nano
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -yq nodejs build-essential
RUN npm install -g npm
RUN dotnet add package Microsoft.Playwright
RUN dotnet build "Agent.csproj" -c Release -o /app/build
RUN npx playwright install
但是一旦我在我的图像命令dotnet run Agent
中运行,它会给我以下错误:
Executable doesn't exist at /root/.cache/ms-playwright/chromium-907428/chrome-linux/chrome
Please run the following command to download new browsers:
║
║ npx playwright install
即使我的dockerfile包含RUN npx playwright install
似乎没有安装它。当我将它从我的dockerfile中删除并在运行图像上手动执行它时,它似乎是可以的。任何想法,我怎么能执行正确的剧作家安装使用dockerfile?
我认为这是Playwright
中已知的问题。你可以在这里看到详细的讨论,特别是看到这个评论
我看到的解决方案大部分工作是完全删除node_modules
,然后重新安装它,或者在docker图像的情况下,尝试在此链接中提到的解决方案,通过将剧作家浏览器设置为特定路径
尝试添加一个环境变量:PLAYWRIGHT_BROWSERS_PATH="/ms-playwright"
希望能帮到你。
我的问题是我已经安装了不同版本的chromium vs剧作家