Skip to content

Convert slides to PDF via container fails on headless linux #702

@ghandmann

Description

@ghandmann

Hi there,

i recently wanted to create PDFs of my markdown slides via my headless linux server (No X11, no Wayland, no locally installed Browser).

But running the container fails with some strange pupeteer error:

$ docker run --rm -v $PWD:/home/marp/app/ -e LANG=$LANG -e MARP_USER="$(id -u):$(id -g)" marpteam/marp-cli:v4.2.3 slide.md --pdf
[  INFO ] Converting 1 markdown...
/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:81
            this._reject(callback, new Errors_js_1.TargetCloseError('Target closed'));
                                   ^

TargetCloseError: Protocol error (Target.setDiscoverTargets): Target closed
    at CallbackRegistry.clear (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:81:36)
    at #onClose (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Connection.js:179:25)
    at Socket.<anonymous> (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/node/PipeTransport.js:29:30)
    at Socket.emit (node:events:530:35)
    at Pipe.<anonymous> (node:net:351:12) {
  cause: ProtocolError
      at <instance_members_initializer> (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:102:14)
      at new Callback (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:106:16)
      at CallbackRegistry.create (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/common/CallbackRegistry.js:24:26)
      at Connection._rawSend (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Connection.js:99:26)
      at Connection.send (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Connection.js:90:21)
      at TargetManager.initialize (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/TargetManager.js:97:32)
      at CdpBrowser._attach (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Browser.js:70:35)
      at CdpBrowser._create (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/cdp/Browser.js:26:23)
      at ChromeLauncher.launch (/home/marp/.cli/node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserLauncher.js:157:61)
      at async n (/home/marp/.cli/lib/marp-cli-CBvmXjya.js:18:4129)
}

Node.js v22.15.0

Some information about my System:

  • Linux: Ubuntun 22.04, Kernel 5.15.0-161-generic
  • Docker: Docker version 28.2.2, build 28.2.2-0ubuntu1~22.04.1
  • Marp Image: docker.io/marpteam/marp-cli:v4.2.3 (sha256:50dd4d893128fd5d9e2e5da77f0f2733ef6a0918d619a00d32238c59c9bdee5e)

The same command runs on my local machine (CachyOS and Ubuntu 24.04). That's why i suspect it has to do something with the headless linux environment? Or is it about Ubuntu 22.04?

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions