question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Cannot run most Kroki companion containers on ARM

See original GitHub issue

Hello,

I’d like to run Kroki with docker-compose to allow for rather large, 5000++ line Exclidraw files to render.

Configuration

M1 Macbook Pro, macOS Monterey 12.3.

Test with Docker compose

I’m running Kroki with docker-compose up -d and the following configuration — note the 0.15.1 tags:

version: "3"
services:
  kroki:
    image: yuzutech/kroki:0.15.1
    depends_on:
      - blockdiag
      - mermaid
      - bpmn
      - excalidraw
    environment:
      - KROKI_BLOCKDIAG_HOST=blockdiag
      - KROKI_MERMAID_HOST=mermaid
      - KROKI_BPMN_HOST=bpmn
      - KROKI_EXCALIDRAW_HOST=excalidraw
    ports:
      - "8000:8000"
  blockdiag:
    image: yuzutech/kroki-blockdiag:0.15.1
    expose:
      - "8001"
  mermaid:
    image: yuzutech/kroki-mermaid:0.15.1
    expose:
      - "8002"
  bpmn:
    image: yuzutech/kroki-bpmn:0.15.1
    expose:
      - "8003"
  excalidraw:
    image: yuzutech/kroki-excalidraw:0.15.1
    expose:
      - "8004"

The core and blockdiag services do start and render images, but mermaid, bpmn, and excalidraw don’t.

Here are the errors:

bpmn
bpmn_1        | Unable to start the service ErrorEvent {
bpmn_1        |   target: WebSocket {
bpmn_1        |     _events: [Object: null prototype] { open: [Function], error: [Function] },
bpmn_1        |     _eventsCount: 2,
bpmn_1        |     _maxListeners: undefined,
bpmn_1        |     _binaryType: 'nodebuffer',
bpmn_1        |     _closeCode: 1006,
bpmn_1        |     _closeFrameReceived: false,
bpmn_1        |     _closeFrameSent: false,
bpmn_1        |     _closeMessage: '',
bpmn_1        |     _closeTimer: null,
bpmn_1        |     _extensions: {},
bpmn_1        |     _protocol: '',
bpmn_1        |     _readyState: 3,
bpmn_1        |     _receiver: null,
bpmn_1        |     _sender: null,
bpmn_1        |     _socket: null,
bpmn_1        |     _bufferedAmount: 0,
bpmn_1        |     _isServer: false,
bpmn_1        |     _redirects: 0,
bpmn_1        |     _url: 'ws://127.0.0.1:40775/devtools/browser/5699345e-f590-4db5-882e-11e1988b1cf4',
bpmn_1        |     _req: null,
bpmn_1        |     [Symbol(kCapture)]: false
bpmn_1        |   },
bpmn_1        |   type: 'error',
bpmn_1        |   message: 'socket hang up',
bpmn_1        |   error: Error: socket hang up
bpmn_1        |       at connResetException (internal/errors.js:607:14)
bpmn_1        |       at Socket.socketOnEnd (_http_client.js:499:23)
bpmn_1        |       at Socket.emit (events.js:388:22)
bpmn_1        |       at endReadableNT (internal/streams/readable.js:1336:12)
bpmn_1        |       at processTicksAndRejections (internal/process/task_queues.js:82:21) {
bpmn_1        |     code: 'ECONNRESET'
bpmn_1        |   }
bpmn_1        | }
mermaid
mermaid_1     | Unable to start the service ErrorEvent {
mermaid_1     |   target: WebSocket {
mermaid_1     |     _events: [Object: null prototype] { open: [Function], error: [Function] },
mermaid_1     |     _eventsCount: 2,
mermaid_1     |     _maxListeners: undefined,
mermaid_1     |     _binaryType: 'nodebuffer',
mermaid_1     |     _closeCode: 1006,
mermaid_1     |     _closeFrameReceived: false,
mermaid_1     |     _closeFrameSent: false,
mermaid_1     |     _closeMessage: '',
mermaid_1     |     _closeTimer: null,
mermaid_1     |     _extensions: {},
mermaid_1     |     _protocol: '',
mermaid_1     |     _readyState: 3,
mermaid_1     |     _receiver: null,
mermaid_1     |     _sender: null,
mermaid_1     |     _socket: null,
mermaid_1     |     _bufferedAmount: 0,
mermaid_1     |     _isServer: false,
mermaid_1     |     _redirects: 0,
mermaid_1     |     _url: 'ws://127.0.0.1:40661/devtools/browser/01be8073-7e9c-4907-b76d-6ac5cfac8717',
mermaid_1     |     _req: null,
mermaid_1     |     [Symbol(kCapture)]: false
mermaid_1     |   },
mermaid_1     |   type: 'error',
mermaid_1     |   message: 'socket hang up',
mermaid_1     |   error: Error: socket hang up
mermaid_1     |       at connResetException (internal/errors.js:607:14)
mermaid_1     |       at Socket.socketOnEnd (_http_client.js:499:23)
mermaid_1     |       at Socket.emit (events.js:388:22)
mermaid_1     |       at endReadableNT (internal/streams/readable.js:1336:12)
mermaid_1     |       at processTicksAndRejections (internal/process/task_queues.js:82:21) {
mermaid_1     |     code: 'ECONNRESET'
mermaid_1     |   }
mermaid_1     | }
excalidraw
excalidraw_1  | Unable to start the service Error: Protocol error (Target.setDiscoverTargets): Target closed.
excalidraw_1  |     at /snapshot/app/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:71:63
excalidraw_1  |     at new Promise (<anonymous>)
excalidraw_1  |     at Connection.send (/snapshot/app/node_modules/puppeteer/lib/cjs/puppeteer/common/Connection.js:70:16)
excalidraw_1  |     at Function.create (/snapshot/app/node_modules/puppeteer/lib/cjs/puppeteer/common/Browser.js:118:26)
excalidraw_1  |     at ChromeLauncher.launch (/snapshot/app/node_modules/puppeteer/lib/cjs/puppeteer/node/Launcher.js:109:56)
excalidraw_1  |     at processTicksAndRejections (internal/process/task_queues.js:95:5)
excalidraw_1  |     at async createBrowser (/snapshot/app/src/browser-instance.js:4:19)
excalidraw_1  |     at async /snapshot/app/src/index.js:8:19

Possibly related issues

https://github.com/puppeteer/puppeteer/issues/7916

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
fviolettecommented, Mar 26, 2022

It works! 🎉 Thanks for pushing it so quickly.

I validated with examples from the Kroki home page (and custom ones for my own needs, like Excalidraw). Only erd gives me this error:

Skipping erd block. POST http://localhost:8000/erd/svg - server returns an empty response or a 404 status code
Site generation complete!
1reaction
Mogzttercommented, Mar 25, 2022

Not quite yet… 😣

$ docker run -p8002:8002 yuzutech/kroki-mermaid:0.17.0-rc.2
qemu-x86_64: Could not open '/lib/ld-musl-x86_64.so.1': No such file or directory
Read more comments on GitHub >

github_iconTop Results From Across the Web

Docker containers for more platforms #1084 - yuzutech/kroki
As a result, ARM servers cannot use the docker image; a complete build system has to be set up on the ARM server...
Read more >
Install Kroki - Kroki Documentation
All the companion containers are optional. Only the yuzutech-kroki container is mandatory. Docker or Podman. We recommend installing Kroki using containers with ...
Read more >
Use kaniko to build Docker images - GitLab Docs
kaniko is a tool to build container images from a Dockerfile, inside a ... The entrypoint needs to be overridden, otherwise the build...
Read more >
hnJ - River Thames Conditions - Environment Agency - GOV.UK
Fckhimki ru, Gravity falls dipcifica, Downtown fiction i just wanna run, ... Beer helps produce more breast milk, Oberland arms bekleidung, ...
Read more >
yuzutech/kroki-bpmn - Docker Image
Read the Kroki installation to learn how to start Kroki companion containers. Usage. Use this images with: docker-compose · Kubernetes. To learn more...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found