Docker 在 Kubernetes 中 运行 时容器不断失败(npm 错误 EISDIR)

Docker container keeps failing when run in Kubernetes (npm error EISDIR)

我是运行以下命令启动一个k8s pod

kubectl run api --image=corina1998/api --env="PORT=3000"

而且我在 api 服务的 pods' 日志中收到以下错误。这是 kubectl logs api 命令的输出:

> nodejs-boilerplate@1.0.0 start-docker /usr/src/app
> node src/start.js

internal/fs/utils.js:332
    throw err;
    ^
Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (fs.js:617:3)
    at tryReadSync (fs.js:382:20)
    at Object.readFileSync (fs.js:419:19)
    at /usr/src/app/node_modules/docker-secret/dist/index.js:16:18
    at Array.forEach (<anonymous>)
    at getSecrets (/usr/src/app/node_modules/docker-secret/dist/index.js:12:15)
    at Object.<anonymous> (/usr/src/app/node_modules/docker-secret/dist/index.js:30:19)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32) {
  errno: -21,
  syscall: 'read',
  code: 'EISDIR'
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! nodejs-boilerplate@1.0.0 start-docker: `node src/start.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the nodejs-boilerplate@1.0.0 start-docker script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

可能是什么问题,我该如何调试?

我通过删除 package-lock.json 解决了这个奇怪的问题,重新运行 npm install 生成一个新的 package-lock.json 文件,然后我重建了图像,现在它可以工作了。我以前结合使用 yarn install 和 npm install 影响了我的 package-lock.json 文件。