首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么npm安装在码头内不起作用?

为什么npm安装在码头内不起作用?
EN

Stack Overflow用户
提问于 2022-11-28 16:38:26
回答 2查看 67关注 0票数 1

我拥有一个Asustor,我想篡改我的节点js应用程序,以便能够在任何时候运行。我跟踪了nodejs官方教程,但是它并没有像我的nas那样工作,而在我的电脑上一切都很好。

这是我的Dockerfile:

代码语言:javascript
复制
FROM node:latest
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node", "app.js"]

这是我在nas上遇到的错误:

代码语言:javascript
复制
Sending build context to Docker daemon  45.57kB
Step 1/7 : FROM node:latest
 ---> b254e440661a
Step 2/7 : WORKDIR /app
 ---> Running in 4ddb713a2c92
Removing intermediate container 4ddb713a2c92
 ---> 7956afe6d600
Step 3/7 : COPY package*.json ./
 ---> 9a814bfae80d
Step 4/7 : RUN npm install
 ---> Running in 477d3abd6312
node:internal/fs/utils:347
    throw err;
    ^

Error: ENOENT: no such file or directory, open '/usr/local/lib/cli.js'
    at Object.openSync (node:fs:591:3)
    at Object.readFileSync (node:fs:459:35)
    at Module._extensions..js (node:internal/modules/cjs/loader:1222:18)
    at Module.load (node:internal/modules/cjs/loader:1068:32)
    at Module._load (node:internal/modules/cjs/loader:909:12)
    at Module.require (node:internal/modules/cjs/loader:1092:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/usr/local/bin/npm:2:1)
    at Module._compile (node:internal/modules/cjs/loader:1205:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1259:10) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/usr/local/lib/cli.js'
}

Node.js v19.1.0
The command '/bin/sh -c npm install' returned a non-zero code: 1
EN

回答 2

Stack Overflow用户

发布于 2022-11-28 16:43:40

从您发送的官方指南中可以清楚地看到,在下面的链接中,我突出显示了它们在主指南中使用的版本,以及在您使用FROM node:latest的Dockerfile中使用的版本,同时它们正在使用node:10,您可以编辑您的Dockerfile并将latest更改为10,以便将节点版本修正为

票数 0
EN

Stack Overflow用户

发布于 2022-11-29 09:48:32

为了让国家预防机制发挥作用,我做了很多工作,但没有一件奏效。因此,我决定使用一个高寒linux映像,并在其中安装节点和npm,它在我的nas上运行得很好。谢谢您的帮助,这是我的Dockerfile,如果您需要的话:

代码语言:javascript
复制
FROM alpine:3.17
RUN apk add --update nodejs npm
RUN addgroup -S node && adduser -S node -G node
USER node
RUN mkdir /home/node/code
WORKDIR /home/node/code
COPY --chown=node:node package*.json ./
RUN npm ci
COPY --chown=node:node . .
EXPOSE 9090
CMD ["node", "app.js"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74603772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档