我node:12-alpine
与一个调用ShellJSspawn
命令的NodeJS后端一起使用。它应该运行shell脚本,并且我已经验证并测试了该脚本可以在本地运行。但是,它在Docker容器中运行时显示此错误。
我还使用docker exec验证了脚本存在于文件夹中。
我是否需要在高山中进行配置才能正常工作?
这是ShellJS调用的命令: source execute.sh
Error: spawn /usr/src/app/scripts/execute.sh ENOENT
at Process.ChildProcess._handle.onexit (internal/child_process.js:267:19)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:84:21)
Emitted 'error' event on ChildProcess instance at:
at Process.ChildProcess._handle.onexit (internal/child_process.js:273:12)
at onErrorNT (internal/child_process.js:469:16)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
errno: 'ENOENT',
code: 'ENOENT',
syscall: 'spawn /usr/src/app/scripts/execute.sh',
path: '/usr/src/app/scripts/execute.sh',
如果您想在Alpine中使用Shell脚本,则必须安装一个名为的软件包bash
。这是因为高山没有重击。
Alpine附带ash
了默认外壳,而不是bash。
这是在您的高山映像中安装bash的示例。
Docker文件
FROM alpine:latest
RUN apk add --update \
nodejs \
nodejs-npm \
bash && rm -rf /var/cache/apk/*
# ...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句