ai:mcp:servery:playwright-mcp-alpine-arm64

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

ai:mcp:servery:playwright-mcp-alpine-arm64 [05.05.2026 11:30] – Nový článek: Playwright MCP v Dockeru na Alpine Linux / ARM64 Petr Nosekai:mcp:servery:playwright-mcp-alpine-arm64 [05.05.2026 11:31] (aktuální) – Doplněna zmínka o AMD64 do úvodu; obě konfigurace (Claude Code + OpenCode) přítomny Petr Nosek
Řádek 3: Řádek 3:
 //Vytvořeno: **5.5.2026** | Aktualizováno: **~~LASTMOD~~**// //Vytvořeno: **5.5.2026** | Aktualizováno: **~~LASTMOD~~**//
  
-[[https://github.com/microsoft/playwright-mcp|Playwright MCP]] (`@playwright/mcp`) je MCP server, který AI umožňuje ovládat webový prohlížeč — navigovat stránky, klikat, vyplňovat formuláře nebo pořizovat screenshoty. Výchozí konfigurace počítá tímže si Playwright stáhne vlastní Chromium. V prostředí Docker na Alpine Linuxu s architekturou ARM64 to nefunguje, a je potřeba použít systémový chromium s wrapper skriptem.+[[https://github.com/microsoft/playwright-mcp|Playwright MCP]] (`@playwright/mcp`) je MCP server, který AI umožňuje ovládat webový prohlížeč — navigovat stránky, klikat, vyplňovat formuláře nebo pořizovat screenshoty. 
 + 
 +> **Pouze pro Alpine Linux / ARM64:** Na amd64 běžnou distribucí (UbuntuDebian, Fedora) standardní konfigurace funguje bez úprav — Playwright stáhne bundled Chromium automatickyTento postup je potřeba jen při kombinaci **Alpine Linux** (musl libc) + **ARM64** + **Docker** bez `SYS_ADMIN` capability.
  
 ===== Proč to nefunguje ve výchozí konfiguraci ===== ===== Proč to nefunguje ve výchozí konfiguraci =====
Řádek 10: Řádek 12:
  
   * Bundled Chromium je zkompilovaný proti **glibc** — na Alpine (musl) nespustíš, bez ohledu na architekturu   * Bundled Chromium je zkompilovaný proti **glibc** — na Alpine (musl) nespustíš, bez ohledu na architekturu
-  * Docker kontejner bez capability `SYS_ADMINnemá povolený namespace sandbox — Chromium padá s ''Failed to move to new namespace: Operation not permitted''+  * Docker kontejner bez capability ''SYS_ADMIN'' nemá povolený namespace sandbox — Chromium padá s ''Failed to move to new namespace: Operation not permitted''
  
 Řešení jsou dvě části: Řešení jsou dvě části:
Řádek 34: Řádek 36:
 ===== Wrapper skript ===== ===== Wrapper skript =====
  
-Playwright předává executovatelný soubor přes ''--executable-path'', ale sandbox flagy tak předat nelze. Wrapper skript pouští systémový chromium s potřebnými flagy a předává mu všechny ostatní argumenty od Playwright.+Playwright předává spustitelný soubor přes ''--executable-path'', ale sandbox flagy tak předat nelze. Wrapper skript pouští systémový chromium s potřebnými flagy a předává mu všechny ostatní argumenty od Playwright.
  
 Vytvoř soubor ''/home/aiwork/tools/chromium-wrapper/chromium-mcp-wrapper.sh'': Vytvoř soubor ''/home/aiwork/tools/chromium-wrapper/chromium-mcp-wrapper.sh'':
Řádek 58: Řádek 60:
 ===== Konfigurace pro Claude Code ===== ===== Konfigurace pro Claude Code =====
  
-Do ''~/.claude.json'' do sekce ''mcpServers'' přidej:+Do ''~/.claude.json'' do sekce ''mcpServers'' přidej (nebo uprav existující záznam ''playwright''):
  
 <code json> <code json>
Řádek 80: Řádek 82:
 </code> </code>
  
-Klíčové parametry:+Oproti standardní konfiguraci jsou klíčové tyto změny:
  
   * ''--browser chrome'' — Playwright spustí browser jako Chrome kanál, ne bundled chromium   * ''--browser chrome'' — Playwright spustí browser jako Chrome kanál, ne bundled chromium
Řádek 86: Řádek 88:
   * ''--headless'' — nutné v Dockeru bez X serveru   * ''--headless'' — nutné v Dockeru bez X serveru
   * ''PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1'' — pojistka, aby se Playwright ani nepokusil o download   * ''PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1'' — pojistka, aby se Playwright ani nepokusil o download
-  * ''--isolated'' — browser session je in-memory; cookies a stav se neuloží zpět na disk 
  
 ===== Konfigurace pro OpenCode ===== ===== Konfigurace pro OpenCode =====
Řádek 112: Řádek 113:
 } }
 </code> </code>
 +
 +Oproti standardní konfiguraci jsou klíčové stejné změny jako u Claude Code — přidání ''--browser chrome'', ''--executable-path'' na wrapper, ''--headless'' a env proměnná ''PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1''.
  
 ===== Ověření ===== ===== Ověření =====
Řádek 132: Řádek 135:
 Po ověření restartuj Claude Code (nebo zadej ''/exit'' a znovu spusť) nebo OpenCode, aby načetly nový MCP server. V Claude Code pak ''/mcp'' ukáže ''playwright'' v seznamu. Po ověření restartuj Claude Code (nebo zadej ''/exit'' a znovu spusť) nebo OpenCode, aby načetly nový MCP server. V Claude Code pak ''/mcp'' ukáže ''playwright'' v seznamu.
  
-===== Rozdíl oproti standardní konfiguraci =====+===== Vztah k standardní konfiguraci =====
  
-Funkčně jde o ekvivalentní náhradu. Co se nezměnilo: ''@playwright/mcp@latest'' je pořád stejný MCP server, který řídí Chromium přes CDP (Chrome DevTools Protocol). Všechny tooly (''browser_navigate'', ''browser_click'', ''browser_snapshot'' atd.) jsou identické.+Funkčně jde o ekvivalentní náhradu. ''@playwright/mcp@latest'' je pořád stejný MCP server, který řídí Chromium přes CDP (Chrome DevTools Protocol). Všechny tooly (''browser_navigate'', ''browser_click'', ''browser_snapshot'' atd.) jsou identické.
  
-Co se změnilo: pouze to, která binárka Chromia se spustí:+Co se liší pouze na Alpine/ARM64:
  
-  * **Standardní setup** (amd64, glibc)Playwright stáhne svůj bundled Chromium do ''~/.cache/ms-playwright/'' +^ ^ Standardní (amd64, glibc) ^ Tento setup (Alpine, ARM64, Docker) ^ 
-  * **Tento setup** (Alpine, ARM64, Docker)''--executable-path'' přesměruje na wrapper → wrapper spustí systémový ''/usr/bin/chromium'' ''--no-sandbox'' flagy+| **Chromium** | Playwright stáhne bundled build do ''~/.cache/ms-playwright/'' | Systémový ''/usr/bin/chromium'' z apk | 
 +**Sandbox** | Funguje standardně | Musí být vypnutý (''--no-sandbox''přes wrapper | 
 +''--executable-path'' | Nepotřeba | Povinný — směruje na wrapper 
 +''PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD'' | Nepotřeba | Nutné nastavit na ''1''
 +''--headless'' | Volitelný | Povinný (bez X serveru) |
  
-Drobný rozdíl: verze Chromia. Playwright si normálně tahá konkrétní pinnou verzi, tady se používá to, co je v Alpine repo (v3.23: verze 147). Pro běžné úkoly jako navigace, klikání, scraping nebo screenshoty je to bez praktického rozdílu.+Drobný rozdíl: verze Chromia. Playwright normálně používá přesně pinnou verzi (standardně 131–137), tady se používá to, co je v Alpine repo (v3.23: verze 147). Pro běžné úkoly jako navigace, klikání, scraping nebo screenshoty je to bez praktického rozdílu.
  
 ===== Zdroje ===== ===== Zdroje =====
  • ai/mcp/servery/playwright-mcp-alpine-arm64.txt
  • Poslední úprava: 05.05.2026 11:31
  • autor: Petr Nosek