zlib无法在debian docker容器中工作

时间:2019-06-18 13:14:55

标签: javascript docker debian zlib

我正在尝试使用uic-918-3来解码来自Deutsche Bahn的旅行条形码(它们正在使用特殊的加密Aztec代码)。该库使用节点核心模块zlib来获取未压缩的票证数据。在本地测试我的代码时,一切都可以正常工作,但是一旦我尝试在docker容器中运行它(我的公司使用debian docker映像),我就会收到错误消息

Error: Missing dictionary
      at Zlib.zlibOnError [as onerror] (zlib.js:168:17)
      at processChunkSync (zlib.js:407:12)
      at zlibBufferSync (zlib.js:154:12)
      at Object.syncBufferWrapper [as unzipSync] (zlib.js:746:14)
      at getTicketDataUncompressed (/node_modules/uic-918-3/lib/barcode-data.js:30:17)
      at module.exports (/node_modules/uic-918-3/lib/barcode-data.js:79:36)
      at interpretBarcodeFn (/node_modules/uic-918-3/index.js:31:62)

我认为当我在WSL或Debian上运行它时,可能会缺少某种依赖性,因为它没有任何错误。

我还已经仔细检查了docker镜像中的node,npm,zlib,gzip和zlib1g版本是否与我在本地使用的版本不同,但它们都相同。 受影响的代码(barcode-data.js:79:36)是

function getTicketDataUncompressed(data) {
      if (data && data.length > 0) {
        console.log(data)
        return zlib.unzipSync(data)
      } else {
        return data
      }
    }

即使我使用空字典手动传递了一个选项对象(根据nodejs文档,该字典的默认值也应该是默认值),我也会遇到相同的错误。

我需要在docker容器中安装一些东西以使zlib正常工作吗?

0 个答案:

没有答案