docker - 在 Docker 镜像中包装 Playwright 时出现错误

标签 docker firefox playwright

将 Playwright 项目包装在 Docker 镜像中后出现一些错误。我在 Playwright 中使用 Firefox。

Dockerfile

FROM mcr.microsoft.com/playwright:next

WORKDIR /app

COPY package.json package-lock.json ./

RUN npm ci

COPY . .

RUN npx playwright install

CMD ["node","index.js"]

Package.json 依赖项

"@extra/humanize": "^4.2.2-next.616",
"playwright": "^1.15.0",
"playwright-extra": "^4.2.1-next.616"

index.js

const { firefox } = require('playwright');

(async () => {
  const browser = await firefox.launch();
  const page = await browser.newPage();
  await page.goto('http://whatsmyuseragent.org/');
  await page.screenshot({ path: `example.png` });
  await browser.close();
})();

它构建得很好,但是当我运行它时,我收到此错误:

browserType.launch: Protocol error (Browser.enable): Browser closed.

==================== Browser output: ====================

<launching> /ms-playwright/firefox-1225/firefox/firefox -no-remote -headless -profile /tmp/playwright_firefoxdev_profile-q4UuZi -juggler-pipe -silent

<launched> pid=965

[err] *** You are running in headless mode.

[err] [Parent 965, Main Thread] WARNING: failed to seal memfd: Invalid argument: file /mnt/actions-runner/_work/playwright-internal/playwright-internal/browser_patches/firefox/checkout/ipc/chromium/src/base/shared_memory_posix.cc:461

[err] [Parent 965, Main Thread] WARNING: freezeable shared memory was never frozen: file /mnt/actions-runner/_work/playwright-internal/playwright-internal/browser_patches/firefox/checkout/ipc/chromium/src/base/shared_memory_posix.cc:543

更新:

如果有人遇到同样的问题,我很遗憾地发现 Docker 镜像在 MacBook M1(我正在运行)上无效:(

最佳答案

正如您已经说过的,这是一个错误(现在位于功能请求中),因为 MS Devs 提供的 docker 文件在 M1 Mac 上失败。

这里是功能请求的链接 - https://github.com/microsoft/playwright/issues/7723

关于docker - 在 Docker 镜像中包装 Playwright 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69329030/

相关文章:

JavaScript 代码无法正常工作

python - 使用 Playwright for Python,如何选择(或查找)一个元素?

javascript - playwright/xpath - 如何获取动态列表中的下一个元素

docker - Docker构建:使用http缓存

node.js - 无法从浏览器连接到在 Docker 容器中运行的 Node 应用程序

windows - VMWare中的Docker错误

Firefox 和 IE9 中的 Javascript 事件

java - 无法在 selenium webdriver 上启动新 session

javascript - 使用剧作家导航后元素不可见

docker - VS 2017 和 Docker : Operation aborted