如何解决在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 举报,一经查实,本站将立刻删除。