当 xml 模式验证失败时,Nodejs libxmljs 使 docker 容器崩溃
Nodejs libxmljs crashes docker container when xml fails schema validation
我正在 NodeJs 中创建一个需要支持特定 xml 请求的 Web 服务。所以我使用 libxmljs 来解析 xml 并根据 xsd 对其进行验证。
在我的 Windows 机器上一切正常,所以当这样做时:
isValid = xml.validate(xsd)
isValid 将设置为布尔值,xml 将在 属性 validationErrors 中包含项目。一切都很好,直到我 运行 它在 docker 容器 运行ning node:10.15.2-alpine.
只要验证通过就万事大吉,但是一旦验证出错,整个docker容器就崩溃了。
我在谷歌搜索时找不到这个问题的答案,所以我会自己提供答案:-)
更改您的 Dockerfile 以使用 FROM node:10.15.2-slim 而不是 FROM node:10.15.2-alpine。
是的,它使用了更多 space,但高山版显然与 libxmljs 使用的一些预构建 python 库不兼容。
我遇到了同样的问题,我能够通过安装 python、g++ 和 make 解决一些高山发行版的问题。
apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python && apk add --update --no-cache g++ && apk add --update --no-cache make
我正在 NodeJs 中创建一个需要支持特定 xml 请求的 Web 服务。所以我使用 libxmljs 来解析 xml 并根据 xsd 对其进行验证。
在我的 Windows 机器上一切正常,所以当这样做时:
isValid = xml.validate(xsd)
isValid 将设置为布尔值,xml 将在 属性 validationErrors 中包含项目。一切都很好,直到我 运行 它在 docker 容器 运行ning node:10.15.2-alpine.
只要验证通过就万事大吉,但是一旦验证出错,整个docker容器就崩溃了。
我在谷歌搜索时找不到这个问题的答案,所以我会自己提供答案:-)
更改您的 Dockerfile 以使用 FROM node:10.15.2-slim 而不是 FROM node:10.15.2-alpine。
是的,它使用了更多 space,但高山版显然与 libxmljs 使用的一些预构建 python 库不兼容。
我遇到了同样的问题,我能够通过安装 python、g++ 和 make 解决一些高山发行版的问题。
apk add --update --no-cache python3 && ln -sf python3 /usr/bin/python && apk add --update --no-cache g++ && apk add --update --no-cache make