首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >docker容器中出现运行时错误,找不到模块

docker容器中出现运行时错误,找不到模块
EN

Stack Overflow用户
提问于 2021-10-26 07:16:52
回答 1查看 77关注 0票数 0

对于新手的问题,我很抱歉,但我一直在找出这个错误,我有一个Express应用程序,我正在尝试将其作为docker容器运行。我已经使用了这个Dockerfile:

代码语言:javascript
运行
复制
FROM node:14.17.0-alpine
COPY /src /nodejs
WORKDIR /nodejs
ADD package*.json ./
RUN npm install

CMD [ "node", "app.js" ]

这是我的package.js文件:

代码语言:javascript
运行
复制
{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js -e js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1",
    "express-rate-limit": "^5.1.3",
    "nodemon": "^2.0.3",
    "prom-client": "^12.0.0",
    "puppeteer": "^10.4.0"
  }
}

我使用的是windows 10,我用来部署容器的命令是:

代码语言:javascript
运行
复制
docker run --name express-api -d -p 4000:4000 docker-express-app

在power shell中执行上述命令后得到的错误:

代码语言:javascript
运行
复制
internal/modules/cjs/loader.js:888

  throw err;

  ^


Error: Cannot find module '/nodejs/app.js'

    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:885:15)

    at Function.Module._load (internal/modules/cjs/loader.js:730:27)

    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)

    at internal/main/run_main_module.js:17:47 {

  code: 'MODULE_NOT_FOUND',

  requireStack: []

}

任何关于这个问题的想法都是值得感谢的。

附言:我的项目层次结构如下:

https://i.stack.imgur.com/ptlkI.png

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 07:29:22

您没有复制容器中的app.js文件。

代码语言:javascript
运行
复制
WORKDIR /nodejs
COPY src .
COPY app.js .
ADD package*.json ./
RUN npm install

CMD [ "node", "app.js" ]

这个应该可以解决这个问题。

我认为一种更简单的方法是创建一个dockerignore文件并复制所有内容。另一个问题是您使用的是ADD而不是COPY。你只需要在容器中复制你的文件,我认为复制就足够添加has some extra functionality了,这可能会让人感到困惑。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69718887

复制
相关文章

相似问题

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