【问题标题】:Nodejs libxmljs crashes docker container when xml fails schema validation当 xml 模式验证失败时,Nodejs libxmljs 使 docker 容器崩溃
【发布时间】:2019-03-22 07:10:42
【问题描述】:

我正在 NodeJs 中创建一个需要支持特定 xml 请求的 Web 服务。所以我使用 libxmljs 来解析 xml 并针对 xsd 进行验证。

在我的 Windows 机器上一切正常,所以当这样做时:

isValid = xml.validate(xsd)

isValid 将设置为布尔值,xml 将在属性validationErrors 中有项目。一切都很好,直到我在运行 node:10.15.2-alpine 的 docker 容器中运行它。

只要验证通过,一切都很好,但是当出现验证错误时,整个docker容器就崩溃了。

我在谷歌搜索时找不到答案,所以我会自己提供答案:-)

【问题讨论】:

    标签: node.js xml docker libxml-js


    【解决方案1】:

    更改 Dockerfile 以使用 FROM node:10.15.2-slim 而不是 FROM node:10.15.2-alpine。

    是的,它使用了更多空间,但 alpine 版本似乎与 libxmljs 使用的一些预构建 python 库不兼容。

    【讨论】:

    • 嗨,我也面临同样的问题,但我的 docker 文件完全不同,看起来像 FROM hub.docker.hpecorp.net/global-it/addison-nodejs:3.0.0 你能帮我吗这里?我可以在这里改变什么?
    • 不,我不知道,但如果您找到了解决方案,请随时在此处发布 :-)
    • 我遇到了同样的问题并尝试了 node:10.15.2-slim 图像:得到了相同的 /usr/src/app/node_modules/libxmljs/build/Release/xmljs.node: 无效 ELF再次标头错误消息。我会尝试使用其他一些图像,看看我是否可以解决这个问题。 :-(
    【解决方案2】:

    我遇到了同样的问题,通过安装 python、g++ 和 make,我能够为一些 alpine 发行版解决它。

    apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python && apk add --update --no-cache g++ && apk add --update --no-cache make
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 2017-07-25
      • 2018-01-22
      • 1970-01-01
      • 2015-02-26
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多