Spec-Zone.ru › Playwright

Docker

Введение​

Dockerfile.noble можно использовать для запуска скриптов Playwright в среде Docker. Этот образ включает браузеры Playwright и системные зависимости браузеров. Пакет/зависимость Playwright в образ не включены и должны быть установлены отдельно.

Использование​

Этот образ Docker опубликован в Реестре артефактов Microsoft.

информация

Этот образ Docker предназначен только для тестирования и разработки. Не рекомендуется использовать его для посещения ненадёжных веб-сайтов.

Загрузка образа​

docker pull mcr.microsoft.com/playwright:v1.63.0-noble

Запуск образа​

По умолчанию образ Docker использует пользователя root для запуска браузеров. Это отключает песочницу Chromium, недоступную для пользователя root. Если вы запускаете доверенный код (например, сквозные тесты) и хотите избежать необходимости управлять отдельным пользователем, можно использовать пользователя root. Для сбора данных или обхода веб-сайтов рекомендуем создать отдельного пользователя в контейнере Docker и использовать профиль seccomp.

Сквозные тесты​

При работе с доверенными веб-сайтами можно не создавать отдельного пользователя и использовать root, поскольку код, запускаемый в браузерах, является доверенным.

docker run -it --rm --ipc=host mcr.microsoft.com/playwright:v1.63.0-noble /bin/bash

Обход сайтов и сбор данных​

При работе с недоверенными веб-сайтами рекомендуется использовать отдельного пользователя для запуска браузеров вместе с профилем seccomp. В контейнере или при использовании образа Docker в качестве базового образа для этого необходимо использовать adduser.

docker run -it --rm --ipc=host --user pwuser --security-opt seccomp=seccomp_profile.json mcr.microsoft.com/playwright:v1.63.0-noble /bin/bash

Для запуска Chromium с песочницей необходим файл seccomp_profile.json. Это стандартный профиль seccomp Docker с дополнительными разрешениями на клонирование пространств имён пользователей:

{
  "comment": "Allow create user namespaces",
  "names": [
    "clone",
    "setns",
    "unshare"
  ],
  "action": "SCMP_ACT_ALLOW",
  "args": [],
  "includes": {},
  "excludes": {}
}

Рекомендуемая конфигурация Docker​

При запуске Playwright в Docker рекомендуется использовать следующую конфигурацию:

  1. Рекомендуется использовать флаг Docker --init. Он позволяет избежать особой обработки процессов с PID=1. Это распространённая причина появления зомби-процессов.
  2. Рекомендуется использовать --ipc=host при работе с Chromium. Без него Chromium может исчерпать память и аварийно завершить работу. Подробнее об этом параметре см. в документации Docker.
  3. Если при запуске Chromium возникают странные ошибки, попробуйте запустить контейнер с docker run --cap-add=SYS_ADMIN при локальной разработке.

Использование в CI​

Примеры конфигураций см. в наших руководствах по непрерывной интеграции.

Удалённое подключение​

Вы можете запустить сервер Playwright в Docker, оставив тесты на хост-системе или другой машине. Это удобно для запуска тестов в неподдерживаемых дистрибутивах Linux или в сценариях удалённого выполнения.

Запуск сервера Playwright​

Запустите сервер Playwright в Docker:

docker run -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.63.0-noble /bin/sh -c "npx -y playwright@1.63.0 run-server --port 3000 --host 0.0.0.0"

Подключение к серверу​

Подключиться к удалённому серверу Playwright можно двумя способами:

  1. Использовать переменную среды с @playwright/test:
PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:3000/ npx playwright test
  1. Использовать API browserType.connect() в других приложениях:
const browser = await playwright['chromium'].connect('ws://127.0.0.1:3000/');

Настройка сети​

Если вам необходимо обращаться к локальным серверам из контейнера Docker:

docker run --add-host=hostmachine:host-gateway -p 3000:3000 --rm --init -it --workdir /home/pwuser --user pwuser mcr.microsoft.com/playwright:v1.63.0-noble /bin/sh -c "npx -y playwright@1.63.0 run-server --port 3000 --host 0.0.0.0"

Это указывает hostmachine на localhost хоста. Для обращения к локальным серверам в тестах следует использовать hostmachine вместо localhost.

примечание

При удалённом запуске тестов убедитесь, что версия Playwright в тестах совпадает с версией, запущенной в контейнере Docker.

Подключение с помощью noVNC и GitHub Codespaces​

В средах Docker и GitHub Codespaces можно просматривать и создавать тесты с помощью средства просмотра noVNC, встроенного в образ Docker. Чтобы веб-интерфейс VNC был доступен за пределами контейнера, включите функцию desktop-lite и укажите webPort в файле .devcontainer/devcontainer.json:

{
  "image": "mcr.microsoft.com/playwright:v1.57.0",
  "forwardPorts": [6080],
  "features": {
    "desktop-lite": {
      "webPort": "6080"
    }
  }
}

После этого можно открыть указанный порт в новой вкладке браузера и получить доступ к веб-интерфейсу noVNC. Это позволит записывать тесты, выбирать селекторы и запускать codegen непосредственно в контейнере.

Теги образов​

См. все доступные теги образов.

Сейчас мы публикуем образы со следующими тегами:

  • :v1.63.0 — образ Docker с выпуском Playwright v1.63.0 на основе Ubuntu 24.04 LTS (Noble Numbat).
  • :v1.63.0-noble — образ Docker с выпуском Playwright v1.63.0 на основе Ubuntu 24.04 LTS (Noble Numbat).
  • :v1.63.0-jammy — образ Docker с выпуском Playwright v1.63.0 на основе Ubuntu 22.04 LTS (Jammy Jellyfish).
  • :v1.63.0-resolute — образ Docker с выпуском Playwright v1.63.0 на основе Ubuntu 26.04 LTS (Resolute Raccoon).
примечание

По возможности рекомендуется всегда фиксировать версию образа Docker. Если версия Playwright в образе Docker не совпадает с версией в проекте/тестах, Playwright не сможет найти исполняемые файлы браузера.

Базовые образы​

Сейчас мы публикуем образы на основе следующих версий Ubuntu:

  • Ubuntu 26.04 LTS (Resolute Raccoon); теги образов включают resolute
  • Ubuntu 24.04 LTS (Noble Numbat); теги образов включают noble
  • Ubuntu 22.04 LTS (Jammy Jellyfish); теги образов включают jammy

Alpine​

Сборки браузеров Firefox и WebKit созданы для библиотеки glibc. Alpine Linux и другие дистрибутивы на основе стандартной библиотеки musl не поддерживаются.

Создание собственного образа​

Чтобы запускать Playwright в Docker, необходимо установить Node.js, браузеры Playwright и системные зависимости браузеров. См. следующий Dockerfile:

FROM node:20-bookworm

RUN npx -y playwright@1.63.0 install --with-deps

© 2026 Microsoft
Licensed under the Apache License, Version 2.0.
https://playwright.dev/docs/docker

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API