Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Playwright does not officially support running its browser binaries directly on Alpine Linux. Playwright’s Docker guidance says Alpine and other musl-based distributions are unsupported because the browser builds require glibc. To convert HTML to an image, run Playwright and its browser in a supported environment, or keep your application on Alpine and connect it to a remote Playwright server running in a supported container.

Why Playwright browser execution on Alpine fails

Installing the Playwright npm package in an Alpine Node image does not make its browser executable compatible with Alpine. Alpine uses musl, while the browser builds Playwright provides require glibc. The official guidance is explicit: “Alpine Linux and other distributions that are based on the musl standard library are not supported.”

This is a runtime constraint, not an HTML conversion API limitation. The practical choices are to move browser execution to a supported Linux environment or leave the Alpine application in place and move only the browser to a supported remote service.

Choose a supported deployment pattern

Approach Use it when Key considerations
Run Playwright in a supported container Your rendering service can use a supported Linux base image. Use a Playwright image or another supported distribution, install the required browser and system dependencies, and keep the image and project Playwright versions aligned.
Keep Alpine and connect to a remote Playwright server Your application must remain on Alpine, but browser execution can run separately. Run the server in a supported container, make its WebSocket endpoint reachable within your deployment network, and match the client and server Playwright versions.

Option 1: Render HTML in a supported container

For a single-container rendering service, use a supported Linux base rather than Alpine. Playwright publishes Docker images based on Ubuntu; its documentation also explains browser installation and system dependencies in the browser installation guidance. Pin compatible versions instead of independently updating the project package and container image. Playwright ties browser versions to Playwright releases, so reinstall the browsers after updating Playwright.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Here is a minimal Node.js example. It loads an HTML string and writes a PNG screenshot. Run it in an environment where the Playwright package and installed browser are compatible; this example is not a way to make Alpine’s local browser execution supported.

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

(async () => {
  const browser = await chromium.launch({ headless: true });
  try {
    const page = await browser.newPage({ viewport: { width: 1200, height: 800 } });
    await page.setContent('<h1>Hello, image</h1><p>Rendered with Playwright.</p>');
    await page.screenshot({ path: 'output.png', fullPage: true });
  } finally {
    await browser.close();
  }
})();

Save the file as render.js, install the matching Playwright package and browser in the supported environment, then run node render.js. The output is output.png in the current directory.

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

Option 2: Keep Alpine and connect to a remote Playwright server

If the application must stay on Alpine, run the browser in a supported container and connect from the Alpine application using Playwright’s browser connection API. The Playwright Docker documentation describes this remote-server pattern. Keep the client library and remote server on the same Playwright version, and configure the server endpoint so it is reachable on the deployment network rather than exposing it unnecessarily.

The following illustrates the client-side shape; replace the endpoint with the WebSocket endpoint for your running remote Playwright server. The browser is launched remotely, so this avoids launching the unsupported browser binaries inside Alpine.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.
const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.connect('ws://playwright-server:3000/');
  try {
    const page = await browser.newPage({ viewport: { width: 1200, height: 800 } });
    await page.setContent('<h1>Hello, image</h1><p>Rendered remotely.</p>');
    await page.screenshot({ path: 'output.png', fullPage: true });
  } finally {
    await browser.close();
  }
})();

The address shown is an example network location, not a universal Playwright server URL. Configure the server according to the official Docker documentation and use the endpoint it exposes in your environment.

Choose screenshot dimensions and format

The Page API’s screenshot method has several controls that affect the resulting image:

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
  • fullPage: true captures the full scrollable page. Without it, the screenshot covers the page viewport.
  • type selects PNG, JPEG, or WebP output. When saving to a path, use an extension that matches the chosen format.
  • scale controls whether output dimensions follow CSS pixels or device pixels. Choose deliberately if downstream code expects exact image dimensions.
  • omitBackground: true requests a transparent background where supported. JPEG does not support transparency.

For example, a transparent full-page PNG can be saved with await page.screenshot({ path: 'output.png', fullPage: true, omitBackground: true }). For a JPEG, omit the transparency option and choose the JPEG type if you specify one explicitly.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep output stable across runs

Screenshot output can vary with the host operating system, browser version, settings, hardware, and headless configuration. For visual regression work, generate the baseline and later captures in the same environment, with the same Playwright version, browser, operating system, and headless configuration. Playwright’s visual comparison guidance discusses the environment sensitivity of screenshot comparisons.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Troubleshoot common failures

  • Browser launch fails on Alpine: the browser binary is not supported on Alpine’s musl runtime. Move browser execution to a supported container or use the remote-server pattern; reinstalling the npm package alone does not resolve the runtime incompatibility.
  • Playwright cannot find the browser executable: the installed browser may not match the Playwright package version, or the browser may not have been installed in that environment. Align the package and image versions, then install the matching browser binaries.
  • Remote connection fails: confirm the browser server is running, the WebSocket endpoint is correct and reachable from the Alpine application, and network policy permits the connection.
  • Screenshot is shorter than expected: the default capture is the viewport. Set fullPage: true when the whole scrollable document is required.
  • Transparent background is missing: set omitBackground: true and use PNG or WebP rather than JPEG.
  • Pixel comparisons change between deployments: align operating system, browser and Playwright versions, capture settings, hardware where practical, and headless configuration.

Or skip the browser setup

If you need an image without operating a Playwright browser environment, ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return a PNG, JPEG, WebP, or PDF. For HTML-to-image workflows that begin with a public URL, use this cURL request; see the ScreenshotNeo documentation for parameters and response details.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits cost nothing, with response headers identifying the page verdict and billing status. Its MCP server provides screenshot tools for AI agents, and the free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots.

Sign up free for 1,000 screenshots a month, with no card required.

Frequently Asked Questions

Can I fix Alpine compatibility by installing glibc in the container?

Playwright’s official guidance does not support Alpine or other musl-based distributions. Use a supported browser environment or connect to a remote Playwright server rather than treating a glibc compatibility workaround as a supported setup.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Can Playwright take a screenshot of HTML that is not hosted publicly?

Yes. In the supported browser environment, load markup with Page’s `setContent()` and then call `page.screenshot()`, as in the examples above.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.