2017-09-28 65 views
1

流星项目运行在本地机器上确定,它是用来在EC2泊坞窗容器上工作正常,但由于某种原因,现在失败了,这里是在我从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 

这里是泊坞窗文件:

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:[email protected]?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 

任何建议如何计算策略这个问题?由于

+0

1)你运行'流星NPM i' _before_建立你的包吗? 2)你是如何构建你的包? 3)你为什么不在'/ opt/bundle/programs/server /'文件夹下执行'npm i'? – Styx

+0

我不运行'流星npm我',它有什么作用?但我做'npm install --production'然后'流星建立。 --architecture os.linux.x86_64'我找不到您在本地mac OSX上指出的文件夹。 –

+0

升级到1.5.2.2后我也看到了这个。 –

回答

1

在泊坞容器,你应该先安装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

+0

是的,这看起来是新的,过去并不需要。感谢您指出,您必须在捆绑包内运行'npm install'。 – Mitar