gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 12:09:57 24 4
gpt4 key购买 nike

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

/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

我找到了通过 kubectl describe 运行的图像,并在 shell 中运行它。它应该运行这个(来自 Dockerfile):

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

所以我在 shell 中运行:

❯ 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/...) 中的所有路径不是来 self 的脚本或汇总。

我正在使用 node:alpine 作为当前在 Node v14.11.0 上的基础镜像。


直接运行

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

确实重现了错误。


运行

docker run -it myregistry/project/server:R4SUGQt node_modules/.bin/rollup -cw

工作正常...我的 CMD 语法有问题吗?

CMD ['node_modules/.bin/rollup','-cw']

最佳答案

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

事后发现了这个 reddit 帖子:https://www.reddit.com/r/docker/comments/9wn5gw/be_aware_of_the_quotes_in_your_dockerfile/

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

关于node.js - busybox/node.js 在 Kubernetes 下运行时出现 ELF 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63984067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com