一个Meteor项目在本地机器上运行正常,并且用于在EC2 docker容器上正常工作,但由于某些原因,它现在失败了,这是我从EC2中发现的:
docker logs be664c9bce8a
/opt/bundle/programs/server/boot.js:392
}).run();
^
Error: Cannot find module "fibers/future"
at Object.require (/opt/bundle/programs/server/boot.js:232:24)
at packages/meteor.js:93:20
at packages/meteor.js:263:4
at packages/meteor.js:1392:3
at /opt/bundle/programs/server/boot.js:339:34
at Function._.each._.forEach (/opt/bundle/node_modules/underscore/underscore.js:153:9)
at /opt/bundle/programs/server/boot.js:158:5
at /opt/bundle/programs/server/boot.js:388:5
at Function.run (/opt/bundle/programs/server/profile.js:510:12)
at /opt/bundle/programs/server/boot.js:387:11这是docker文件:
FROM lambdalinux/baseimage-amzn
#RUN yum update -y
RUN curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
RUN yum install -y tar nodejs gcc-c++ make
ADD ./novice-driver.tar.gz /opt/
EXPOSE 8000
ENV ROOT_URL https://novicedriver.com.au
ENV MONGO_URL "mongodb://abc:xyz@cluster0...sDB?ssl=true&replicaSet=Cluster0-shard-0&authSource=myDB"
ENV PORT 8000
WORKDIR /opt/bundle/
RUN npm install fibers underscore source-map-support semver
CMD node ./main.js有什么建议如何处理这个问题吗?谢谢
发布于 2017-09-28 15:26:08
在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。
https://stackoverflow.com/questions/46460853
复制相似问题