jshor / symbology

🔖 Generates 1D, 2D, or composite barcodes in png, svg, or eps formats. Supports 50+ symbologies.
https://symbology.dev
GNU General Public License v3.0
215 stars 24 forks source link

Unable to create any barcode in docker with alpine linux #85

Closed Hixqqo closed 1 year ago

Hixqqo commented 2 years ago

I am trying to use this library inside of a docker container, everything seems to be fine but if I run my code (even if it's just a basic example from your documentation) it gets stuck with no error or anything.

Docker image is based on node-alpine:

EDIT: it doesn't matter if I use higher version of node or alpine

Here is a snippet of my code (it gets stuck on createStream line):

console.log('before')
  try {
    const data = await createStream({
      symbology: SymbologyType.CODE11,
    }, '8765432164')

   console.log(data)
  } catch (e) {
    console.log(e)
  }
  console.log('after')

Console output:

before
jshor commented 2 years ago

I confirmed that running the default Linux pre-built binary on Alpine results in a SIGSEGV. However, I was able to get it to work by manually building the symbology package using yarn build, which resulted in the correct output:

before
{
  data: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAAB0CAYAAADuFVwCAAAAAklEQVR4AewaftIAAAO6SURBVO3BQW5dRxAEwcoG73/ltGbxgBH5RVGm3PCiIkhiflBzALmpuQE51BxAbmoOIIeaG5BDzQHkUHMAOdTcgNzUHEAONTcgNzUHkEPNAeSm5gByU3MAOdQcQA41B5CbmgPITc0B5KbmBuRQcwA51BxADjU3IIeaA8hNzQHkpuYAcqg5gNzUHEAONTcgNzUHkEPNAeRQcwC5qTmA3NQcQA41NyA3NQeQQ80B5FBzADnUHEBuag4gh5oDyE3NDcgxqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNZOqWjOpqjWTqlozqao1k6paM6mqNfhDqmrFpKrWTKpqzaSq1rylPgByU3MAeUXNA8hDzQHkFTXvAVFzAHlFzQHkpuY9IGreA/JQ8woQNTcgDzU3IIeaeu0t9RMgam5A1Kh5D8gDiJpX1PwOkJua94AcQNTcgKh5AHkFiJrPAHkPiJpXgKg5gKipjyb1rwFRcwBR828BUfMZIGq+Aoia94Co+QwQNTcgal4BouahBkh99Jb6iRogag4gar4LyE3NnwCi5qHmM2rq/+ct9YEaIIeaV4CoeQ/IQ81DzQ2ImgOIml8BcgBR8woQNV8F5KHmAUTNrwB5qKk/85b6AIiaA4iarwCi5gFEjZrvUPMAouY7gKh5AFHzO0DUPICoqa+b1E+AqHmoAXIDouY9NX8KiJrvAKLmq9S8AkTNr6ip75nUfw7IZ4AAAXIAOYD8DhA1fwsQIEAOIPX3vKX+CBA1f4uaGxA1XwFEzd+i5gZEze+oAaLmAKKmPsIfUj8BclPzAKLmFSA3NQ8gNzWvAFHzAHJTcwB5Rc0B5D01B5CbmleAqHkAuam5ATnU1Gv4Q6pqxaSq1vwDUVOl83hs9hYAAAAASUVORK5CYII=',
  width: 220,
  height: 116,
  message: 'Symbology successfully created.'
}
after
jshor commented 1 year ago

As of v3.0.13, Symbology now supports a simple command to rebuild the binary. I've also updated the docs to clarify why this step may be necessary for Alpine.

For future installations, install dependencies with npm_config_build_from_source set as true:

npm i symbology --build-from-source=true

or for yarn:

npm_config_build_from_source=true yarn add symbology

For an existing installation:

  1. cd node_modules/symbology
  2. yarn install:rebuild