Docker 错误:找不到模块";“纤维/未来”;码头集装箱

Docker 错误:找不到模块";“纤维/未来”;码头集装箱,docker,meteor,Docker,Meteor,Meteor项目在本地计算机上运行正常,并且用于在EC2 docker容器上正常工作,但是由于某些原因,它现在失败了,下面是我从EC2中发现的: docker日志be664c9bce8a /opt/bundle/programs/server/boot.js:392 }).run(); ^ 错误:找不到模块“光纤/未来” 在Object.require(/opt/bundle/programs/server/boot.js:232:24) 在packages/meteor.js:93:20 在p

Meteor项目在本地计算机上运行正常,并且用于在EC2 docker容器上正常工作,但是由于某些原因,它现在失败了,下面是我从EC2中发现的:

docker日志be664c9bce8a
/opt/bundle/programs/server/boot.js:392
}).run();
^
错误:找不到模块“光纤/未来”
在Object.require(/opt/bundle/programs/server/boot.js:232:24)
在packages/meteor.js:93:20
在packages/meteor.js:263:4
在packages/meteor.js:1392:3
在/opt/bundle/programs/server/boot.js:339:34
at Function.each.forEach(/opt/bundle/node\u modules/下划线/下划线.js:153:9)
at/opt/bundle/programs/server/boot.js:158:5
at/opt/bundle/programs/server/boot.js:388:5
在Function.run(/opt/bundle/programs/server/profile.js:510:12)
at/opt/bundle/programs/server/boot.js:387:11
这是docker文件:

来自lambdalinux/baseimage amzn
#运行yum更新-y
运行curl--静默--位置https://rpm.nodesource.com/setup_4.x |猛击-
运行yum安装-y tar nodejs gcc-c++make
添加./newoil-driver.tar.gz/opt/
曝光8000
环境根目录https://novicedriver.com.au
环境蒙哥乌网址“mongodb://abc:xyz@cluster0…sDB?ssl=true&replicset=cluster0-shard-0&authSource=myDB“
环境港口8000
WORKDIR/opt/bundle/
运行npm安装源代码映射支持semver
CMD节点/main.js

对如何解决这个问题有什么建议吗?谢谢

在Docker容器中,您应该首先为您的捆绑包安装
npm
模块:

# Install node modules
WORKDIR /opt/bundle/programs/server
RUN npm install

WORKDIR /opt/bundle
# do you other stuff

另外,在构建应用程序捆绑包(在本地计算机或CI服务器上)之前,最好使用:
meteor npm install--production
而不仅仅是
npm install--production

1)在构建捆绑包之前,您是否运行了
meteor npm i
?2) 您是如何构建包的?3) 为什么不在
/opt/bundle/programs/server/
文件夹中执行
npm i
?我不运行
meteor npm i
,它做什么?但我确实安装了npm——生产,然后是meteor构建--architecture os.linux.x86_64我找不到您在本地mac OSX上指定的文件夹。升级到1.5.2.2后,我也看到了这一点。是的,这似乎是新的,过去不需要。感谢您指出您必须在捆绑包中运行
npm install