node.js – 运行dockerized node app时出现“错误:生成mongoexport ENOENT”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了node.js – 运行dockerized node app时出现“错误:生成mongoexport ENOENT”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1696字,纯文字阅读大概需要3分钟。
内容图文
![node.js – 运行dockerized node app时出现“错误:生成mongoexport ENOENT”](/upload/InfoBanner/zyjiaocheng/796/9b58a3c2057a46ac93690ff16b2bc119.jpg)
我正在对我们的一个节点应用程序进行docker化.这个应用程序的一个功能是,一开始,应用程序使用mongoexport下载mongodb数据并写入文件.
我正在使用child_process spawn这样做
var spawn = require('child_process').spawn;
var mongoExport = spawn('mongoexport', [
'--db', 'dbname', '--collection', 'collection1',
'--fields',
'name,address,city,country,pincode',
'--type', 'csv'
]);
当我从命令提示符运行’node app.js’时,应用程序启动并正常工作.
但是,当我将此节点应用程序停靠,并尝试运行时,我得到“错误:spawn mongoexport ENOENT”.
我在一个容器中运行mongodb,在另一个与mongodb容器链接的容器中运行node app
docker run –restart=always –name mongo-rnd -v
/opt/mongo_rnd:/data/db -d mongo:3.2.7docker run -e “MONGO_HOST=mongo-rnd” -p 8081:8081 -d –name nodeapp –link mongo-rnd:mongo-rnd nodeappimageid
我已尝试以下方法来调试此问题,
>我通过评论mongoexport功能检查,一切正常,如预期的那样.
>我想,这可能是docker容器中child_process的问题.所以,我尝试了一个简单的’ls’命令
06001
没问题,它运作正常.
所以,我的结论是命令’mongoexport’在nodejs docker容器中不可用.
任何人都知道如何实现这一目标?或者是不是可以这样做?
这是我的docker文件供参考
FROM node:wheezy
RUN mkdir -p /usr/src/temp
COPY . /usr/src/temp
WORKDIR /usr/src/temp
RUN npm install
ENV PORT=8081
ENV MONGO_HOST "localhost"
EXPOSE 8081
CMD node app.js
解决方法:
正如我已经正确猜到的那样,问题是“mongodb”没有安装在nodeapp容器中.
我所要做的只是在Dockerfile中添加以下行,以在nodeapp容器中安装mongodb
RUN apt-get update
RUN apt-get install -y mongodb
从代码我必须在mongoexport调用中指定–host和–port:
var mongoExport = spawn('mongoexport', [
'--db', 'dbname', '--host', 'mongo-rnd', '--port', 27017, '--collection', 'collection1','--fields', 'name,address,city,country,pincode',
'--csv']);
内容总结
以上是互联网集市为您收集整理的node.js – 运行dockerized node app时出现“错误:生成mongoexport ENOENT”全部内容,希望文章能够帮你解决node.js – 运行dockerized node app时出现“错误:生成mongoexport ENOENT”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。