【问题标题】:Docker container keeps failing when run in Kubernetes (npm error EISDIR)Docker 容器在 Kubernetes 中运行时不断失败(npm 错误 EISDIR)
【发布时间】:2022-01-25 16:26:18
【问题描述】:

我正在运行以下命令来启动一个 k8s pod

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

我在我的 api 服务的 pod 日志中收到以下错误。这是 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.

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

【问题讨论】:

  • 你是如何构建图像的?我猜它也应该在本地失败。看起来你的 docker 文件有问题。

标签: node.js docker kubernetes npm


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2019-02-24
    • 2021-01-07
    • 2021-06-03
    • 1970-01-01
    • 2019-01-02
    相关资源
    最近更新 更多