繁体   English   中英

Dockerfile,Nodejs,mongodb导入

[英]Dockerfile, Nodejs, mongodb import

我正在做我的Dockerfile,当我想在mongodb中导入bbd.json时出现错误。 我搜索了此错误,发现了这一点:添加--host localhost或添加--host = localhost(或127.0.0.0)我已经尝试了两者,但没有一个起作用。 这是我的Dockerfile:

FROM node:argon

RUN apt-get update
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
#RUN echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list
RUN apt-get update
RUN apt-get -y install vim-tiny
#RUN vim /etc/apt/sources.list.d/mongodb-org-3.2.list
RUN echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-3.2.list
RUN apt-get update
RUN apt-get install -y mongodb-org=3.2.10 mongodb-org-server=3.2.10 mongodb-org-shell=3.2.10 mongodb-org-mongos=3.2.10 mongodb-org-tools=3.2.10
RUN npm install mongoose
RUN npm install body-parser

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install

COPY . /usr/src/app

RUN mongod&
RUN mkdir /usr/test
RUN mkdir -p /data/db
RUN mongod --dbpath /usr/test --fork --syslog
RUN mongoimport --db bdd --collection users --file bdd.json
RUN cp /usr/test/* .

EXPOSE 3000
CMD ["npm", "start"]

这里是错误:

Step 17/19 : RUN mongoimport --host localhost --db apirest --collection users --file bdd.json
 ---> Running in 028f35e6e2ab
2017-04-03T11:40:57.406+0000    [........................] apirest.users        0B/23.9KB (0.0%)
2017-04-03T11:40:57.910+0000    Failed: error connecting to db server: no reachable servers0.0%)
2017-04-03T11:40:57.911+0000    imported 0 documents
The command '/bin/sh -c mongoimport --host localhost --db apirest --collection users --file bdd.json' returned a non-zero code: 1

你有什么想法吗? 谢谢。

这不起作用,因为在构建时,mongod进程未运行。

我不会为您提供建议,因为您的方法(将mongod和节点进程同时构建到同一个容器中)违反了标准的docker哲学:您应该为每个容器构建一个应用程序,即为mongod提供单独的服务。

您是对的,我必须添加RUN mongod&,但此后错误仍然存​​在。 所以最后,我更改了这两行:

RUN mongod --dbpath /usr/test --fork --syslog
RUN mongoimport --db bdd --collection users --file bdd.json

在一个:

RUN mongod --dbpath /usr/test --fork --syslog && mongoimport --db apirest --collection users --file bdd.json --jsonArray

而且效果很好! 谢谢大家 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM