docker-compose up在nodejs-application上失败:“错误:找不到模块”

时间:2020-10-31 20:33:50

标签: node.js docker docker-compose


因此,在搜索了几个小时并阅读了关于stackoverflow的不同文档和帖子后,我自己发布了一个。

我无法将自己的node.js应用程序构建到docker-image中,尝试进行 docker-compose 时遇到以下错误消息

Attaching to testbot_bot_1
bot_1  | internal/modules/cjs/loader.js:883
bot_1  |   throw err;
bot_1  |   ^
bot_1  |
bot_1  | Error: Cannot find module '/usr/src/app/bot.js'
bot_1  |     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
bot_1  |     at Function.Module._load (internal/modules/cjs/loader.js:725:27)
bot_1  |     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
bot_1  |     at internal/main/run_main_module.js:17:47 {
bot_1  |   code: 'MODULE_NOT_FOUND',
bot_1  |   requireStack: []
bot_1  | }

我的 Dockerfile

FROM node:14.15.0-alpine3.10

RUN mkdir /usr/src/app/
WORKDIR /usr/src/app/

ADD package.json /usr/src/app/
RUN npm install
ADD . /usr/src/app/

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

我的 docker-compose.yml

version: "3.8"
services:
  bot:
    build: .
    command: node bot.js

一些帖子使我相信我应该添加一个卷引用,但是它产生了相同的错误:

version: "3.8"
services:
  bot:
    build: .
    command: node bot.js
    volumes:
    - .:/usr/src/app

我的文件结构如下:

- commands
  - (some .js files containing modules)
- config
  - (config files in .json-format)
- db
  - (some .js files containing modules)
- res
  - (imagefiles etc.)
- .dockerignore
- bot.js
- docker-compose.yml
- Dockerfile
- package.json

我的 .dockerignore

node_modules
npm-debug.log
Dockerfile
.dockerignore

也许与我的docker-compose.yml中的.build参数有关?我不知道,不知道...

我也已经尝试过docker-compose down -v,然后尝试过docker-compose up,但不幸的是,它没有任何改变。

我也没有链接任何端口,因为我的应用程序仅具有传出连接,这应该没问题吧?

任何帮助将不胜感激! 通常我会先尝试使用Google,然后看看Stackoverflow,也许我只是没有搜索正确的词? 非常感谢您阅读我的帖子!

1 个答案:

答案 0 :(得分:0)

嗯,好吧,我才弄清楚了。

结果:您不能将其与网络存储一起使用。 我将项目放在NAS上,并考虑使用docker-compose,将必要的文件复制到本地存储(或任何位置)以运行它。

显然没有。

但是将我的项目复制到我的本地计算机上然后运行它就可以了。。。叹了口气...无论如何,感谢您阅读我的文章!