Docker找不到本地节点模块?

我有一个Node快速应用程序,我试图变成一个Docker镜像,并运行在一个容器中。 我遇到的问题是,它似乎在我的应用程序的集装箱版本,它找不到我的本地模块av-requestaml-request ,但它没有find已安装的模块的问题。

app.js

 var express = require('express'); var path = require('path'); var bodyParser = require('body-parser'); var av = require('./modules/av-request') var aml = require('./modules/aml-request') var app = express(); ... 

dockerfile

 FROM node:carbon # Create container's working directory RUN mkdir -p /usr/src/app WORKDIR /usr/src/app # Install app dependencies COPY ./app/package.json /usr/src/app/ RUN npm install # Bundle app source COPY ./app/* /usr/src/app/ # Verify directory contents RUN ls /usr/src/app/ EXPOSE 8080 CMD ["npm", "start"] 

这是我的构build和运行过程的输出。 请注意,在第7步中,当我们运行ls /usr/src/app/它显示了所有被复制过的文件,但没有任何目录结构或任何东西。 基于如何正常工作,我希望它列出目录,但没有显示。 这给我的印象是,我的应用程序中的所有文件出于某种原因存在于根目录级别。 我是否正确复制我的应用程序? 下面是正确的文件结构,但是在构build过程的输出中我没有看到任何这样的内容。

 - app/ - package.json - app.js - modules/ - node_modules/ - private/ - public/ - views/ - dockerfile - .dockerignore 

这是我build立图像时的输出。

 docker build -t webapp . Step 1/9 : FROM node:carbon ... Step 7/9 : RUN ls /usr/src/app/ ---> Running in 9951fa3289da accepts acorn acorn-globals ajv align-text amdefine aml-request.js app.js array-flatten ... Successfully built f3d877bc94da Successfully tagged webapp:latest SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories. 

我可以在运行docker images时validation镜像是否存在

然后我运行docker run -d -p 8080:80 webapp它吐出容器ID。 现在,当我运行docker ps -l它显示容器状态为Exited (1)所以我去检查日志。

 docker logs b3fcc5a6f545 > app@0.0.0 start /usr/src/app > node app.js module.js:538 throw err; ^ Error: Cannot find module './modules/av-request' at Function.Module._resolveFilename (module.js:536:15) at Function.Module._load (module.js:466:25) at Module.require (module.js:579:17) at require (internal/module.js:11:18) at Object.<anonymous> (/usr/src/app/app.js:5:10) at Module._compile (module.js:635:30) at Object.Module._extensions..js (module.js:646:10) at Module.load (module.js:554:32) at tryModuleLoad (module.js:497:12) at Function.Module._load (module.js:489:3) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! app@0.0.0 start: `node app.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the app@0.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.