Docker Node.js无法打开文件

问题描述

我有一个带有nodejs的码头工人容器。 (node:14.11-alpine3.12) 运行cron,使用以下命令执行.sh文件node /home/parsecsv.js;

无论何时cron执行此命令,我都会收到错误消息

'rror: Cannot find module '/home/parsecsv.js
  at Function.Module._resolveFilename (internal/modules/cjs/loader.js:893:15)
...

我绝对确定此文件存在,甚至更多,当我进入容器外壳并从命令行运行此命令(node /home/parsecsv.js)时,它运行正常。我该怎么办?

解决方法

检查文件的权限,您可以通过授予文件的完全权限来进行调试。

将此添加到您的docker文件中,查看问题是否仍然存在。

运行chmod 777 /home/parsecsv.js

,

因此,对我有所帮助的是将js文件复制到/root目录而不是/home。然后将work.sh中的路径更改为:node parsecsv.js似乎当节点从sh脚本运行时,它无法读取绝对路径或其他内容。令人困惑,但是现在可以正常工作了。