Главная/Разработка/Playwright
Установка Playwright на сервер и в Docker
Установка Playwright на сервер сводится к двум путям: поставить пакет и браузеры командой install --with-deps или взять готовый образ Docker от Microsoft, где браузеры уже лежат внутри. Оба пути работают без монитора, потому что Playwright запускает браузеры в безголовом режиме (headless), то есть без окна.
Ответ за 30 секунд
Для тестов, скриншотов и парсинга берите официальный образ mcr.microsoft.com/playwright и запускайте его с флагами --init и --ipc=host. Для старта хватит 2 ядер и 4 ГБ памяти на два-три браузера, а версия пакета playwright должна совпадать с тегом образа: при расхождении браузер не находится.
Списания раз в час: прогон тестов или сбор данных оплачивается за время, пока сервер включён.
Сколько памяти нужно Playwright на сервереv1.64тег образа Playwright на 15.10
3движка: Chromium, Firefox, WebKit
--ipc=hostфлаг для Chromium в Docker
01 · 1 мин
Для чего ставят Playwright на сервер, и чем он отличается от Selenium и Puppeteer#
Playwright управляет настоящими браузерами из кода: открывает страницы, нажимает кнопки, заполняет формы, делает скриншоты и PDF. На сервер его ставят ради автотестов в CI, регулярных проверок сайта, сбора данных с динамических страниц и браузерных ИИ-агентов вроде Browser Use.
| Playwright | Selenium | Puppeteer | |
|---|---|---|---|
| Браузеры | Chromium, Firefox, WebKit | через драйверы WebDriver | Chrome и Firefox |
| Языки | JavaScript, TypeScript, Python, Java, .NET | Java, Python, C#, JavaScript и другие | JavaScript, TypeScript |
| Готовый образ | mcr.microsoft.com/playwright | selenium/standalone-chrome, порт 4444 | ghcr.io/puppeteer/puppeteer |
| Серверная часть | нет, скрипт сам запускает браузер | Grid, отдельный сервер заданий | нет, скрипт сам запускает браузер |
Если скриптов на Selenium много, переписывать их ради сервера не нужно: тот же сервер держит и Selenium Grid в контейнере. Новый проект проще начинать с Playwright, потому что сервер заданий для него не требуется.
Инструмент · 1 мин
Сколько памяти нужно Playwright на сервере#
Каждый запущенный браузер занимает память отдельно, поэтому главный параметр сервера это число одновременных браузеров, а не размер проекта. Playwright Test по умолчанию берёт число воркеров, равное половине логических ядер, так что 2 ядра дают одного воркера, а 8 ядер четырёх.
Ориентир для старта: 1 ядро и 2 ГБ на один браузер, дальше добавляйте по гигабайту-два на каждый параллельный. В Таймвеб Клауд подойдёт MSK Ultra 50 (2 ядра, 4 ГБ, 5 480 ₽ в месяц на 14 октября 2026), при почасовых списаниях разовый прогон обходится в копейки.
Какой сервер взять под Playwright
Отметьте, сколько браузеров будет работать одновременно
03 · 1 мин
Установка Playwright на Ubuntu без Docker#
- Поставьте Node.js или Python: возьмите версию по инструкции из раздела Node.js на сервере либо Python на сервере.
- Добавьте Playwright в проект и скачайте браузер вместе с системными библиотеками. Флаг
--with-depsсам доустановит пакеты ОС, поэтому команда требует прав root или sudo. - Запустите тест или скрипт. На сервере без экрана окно не нужно, браузер стартует в безголовом режиме.
# Node.js
npm i -D @playwright/test
npx playwright install --with-deps chromium
# Python
pip install playwright
playwright install --with-deps chromium
Название браузера в конце команды ограничивает загрузку одним движком. Без него скачаются все три, а это лишние гигабайты на диске.
04 · 1 мин
Playwright в Docker: официальный образ, флаги и compose-файл#
Образ mcr.microsoft.com/playwright:v1.64.0-noble собран на Ubuntu 24.04 и включает браузеры с системными зависимостями. Сам пакет Playwright в нём отсутствует, его ставят отдельно командой npm ci. Есть теги на Ubuntu 22.04 (jammy) и 26.04 (resolute), а Alpine не поддерживается: сборки Firefox и WebKit рассчитаны на glibc.
FROM mcr.microsoft.com/playwright:v1.64.0-noble
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
CMD ["npx", "playwright", "test"]
services:
tests:
build: .
init: true
ipc: host
volumes: ['./reports:/app/playwright-report']
Документация Playwright советует два флага: --init избавляет от зависших процессов-зомби, а --ipc=host не даёт Chromium упасть из-за нехватки общей памяти. В compose им соответствуют init: true и ipc: host.
Версии пакета и образа должны совпадать
Если в package.json стоит Playwright другой версии, чем в теге образа, скрипт не найдёт браузер в каталоге /ms-playwright. Закрепите версию без знака ^ и меняйте тег образа вместе с ней.
Для Python, Java и .NET Microsoft публикует отдельные образы с тем же набором браузеров. Если нужен один сервер с браузерами для разных машин, npx playwright run-server --port 3000 --host 0.0.0.0 внутри контейнера открывает удалённое подключение, но порт 3000 закрывайте файрволом или SSH-туннелем: иначе чужие смогут запускать браузеры у вас.
05 · 1 мин
Шрифты и пользователь для Playwright на сервере#
Скриншоты и PDF с сервера выглядят иначе, чем на ноутбуке, из-за шрифтов: в системе нет гарнитур, которые просит сайт, и браузер подставляет другие. Образ уже содержит базовый набор, но если макет сверяется попиксельно, добавьте нужные пакеты в Dockerfile, а тесты с эталонными скриншотами запускайте всегда на одном и том же образе.
Образ запускает браузеры от root, и из-за этого песочница Chromium выключена. Для автотестов своего сайта это допустимо. Для сбора данных с чужих страниц документация рекомендует отдельного пользователя pwuser и профиль seccomp, а образ в целом предназначен для тестов и разработки, а не для просмотра недоверенных сайтов.
06 · 1 мин
Playwright в CI на своём сервере: GitLab Runner и Jenkins#
В GitLab CI образ указывают строкой image: mcr.microsoft.com/playwright:v1.64.0-noble, и раннер с Docker-исполнителем запускает тесты внутри него, без установки браузеров на хост. Раннер ставится по инструкции установка GitLab Runner, а для Jenkins образ подключают как агент сборки: Jenkins на сервере.
Отчёты и трассировки сохраняйте как артефакты сборки, а видео включайте только для упавших тестов: так диск не заполняется за неделю.
07 · 1 мин
Вопросы об установке Playwright#
Как установить Playwright на сервер без графического интерфейса?
Добавьте пакет в проект и выполните playwright install --with-deps chromium от root или через sudo. Экран не нужен: браузеры запускаются в безголовом режиме, а результат сохраняется в отчёты и скриншоты.
Зачем Playwright в Docker флаг --ipc=host?
Без него Chromium использует ограниченную общую память контейнера и может упасть на тяжёлых страницах. Документация Playwright рекомендует этот флаг для Chromium, а вместе с ним флаг --init.
Почему Playwright в Docker не находит браузер после обновления пакета?
Версия пакета playwright в проекте не совпадает с тегом образа. Браузеры лежат в образе под версию тега, поэтому меняйте тег и пакет одновременно.
Сколько памяти нужно Playwright для пяти параллельных браузеров?
Для старта закладывайте около 1 ГБ на браузер и ещё 2 ГБ на систему, то есть около 6-8 ГБ. Точная цифра зависит от сайтов, поэтому проверьте расход на первом реальном прогоне.
Можно ли запустить Playwright на Alpine Linux?
Нет, официально не поддерживается: сборки Firefox и WebKit собраны под glibc, а Alpine использует musl. Берите образ на Ubuntu.
Почему этому можно верить
Как мы проверяли
Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Реестр контейнеров Таймвеб Клауд, timeweb.cloud/services/container-registry, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Документация Playwright: Docker (образы, флаги, теги), playwright.dev/docs/docker, проверено 15 октября 2026.
Запустите свой сервер за пару минут
Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.
- NVMe-диски и гарантированная доля процессора
- Root-доступ и любой софт, от Docker до игровых серверов
- Маркетплейс: 91 приложение в один клик
- Бесплатный перенос проекта силами специалистов