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 рекомендуется использовать следующую конфигурацию:
-
Рекомендуется использовать флаг Docker
--init. Он позволяет избежать особой обработки процессов с PID=1. Это распространённая причина появления зомби-процессов. -
Рекомендуется использовать
--ipc=hostпри работе с Chromium. Без него Chromium может исчерпать память и аварийно завершить работу. Подробнее об этом параметре см. в документации Docker. -
Если при запуске 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 можно двумя способами:
- Использовать переменную среды с
@playwright/test:
PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:3000/ npx playwright test
- Использовать 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