微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Kubernetes下运行时busybox / node.js给出ELF语法错误

如何解决在Kubernetes下运行时busybox / node.js给出ELF语法错误

我的node.js kubernetes开发服务器陷入了崩溃循环。日志显示

(n - 1 - (n - 1) % 3) + 3

我找到了通过/bin/busyBox:1 ELF ^ SyntaxError: Invalid or unexpected token at wrapSafe (internal/modules/cjs/loader.js:992:16) at Module._compile (internal/modules/cjs/loader.js:1040:27) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10) at Module.load (internal/modules/cjs/loader.js:941:32) at Function.Module._load (internal/modules/cjs/loader.js:776:16) at Function.executeUserEntryPoint [as runMain (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47 stream closed 运行的映像,并将其运行在shell中。它应该正在运行(从kubectl describe开始):

Dockerfile

所以我在shell中跑了

...
ENTRYPOINT ["node","--max-old-space-size=4096","--enable-source-maps"]
CMD ['node_modules/.bin/rollup','-cw']

它运行完美。那么,这个错误源于何处?堆栈中的所有路径都跟踪内部(❯ dsh myregistry/project/server:R4SUGQt +dsh:1> docker run --rm -it --entrypoint sh myregistry/project/server:R4SUGQt -c '{ command -v zsh && exec zsh -il ;} || { command -v bash && bash -il ;} || { command -v ash && ash -il ;}' /bin/ash 06884c20d5cc:/app# node --max-old-space-size=4096 --enable-source-maps node_modules/.bin/rollup -cw ),而不是我的脚本或汇总。

我使用internal/modules/...作为我的基本映像,该映像当前位于Node v14.11.0上。


直接运行

node:alpine

执行。该错误


运行

docker run --rm myregistry/project/server:R4SUGQ

工作正常... docker run -it myregistry/project/server:R4SUGQt node_modules/.bin/rollup -cw 语法有问题吗?

CMD

解决方法

这是我在CMD中使用的单引号。

在以下事实之后找到了此reddit帖子:https://www.reddit.com/r/docker/comments/9wn5gw/be_aware_of_the_quotes_in_your_dockerfile/

浪费时间...在其他人遇到类似错误时将这个问题留在这里,也许对他们来说是可以谷歌搜索的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。