Cannot run most Kroki companion containers on ARM
See original GitHub issueHello,
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
Issue Analytics
- State:
- Created 2 years ago
- Comments:9 (9 by maintainers)
Top 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 >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
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:Not quite yet… 😣