作为Docker的新手,我试图通过工作目录中的docker-compose.yml构建一个包含一些示例数据的mongoDB Docker容器。
我的mongo/Dockerfile包含以下代码:
FROM mongo:latest
ADD shops.json /home/
RUN mongoimport --db masterdata --collection shops --file /home/shops.json在最后一行中,示例数据将被导入到mongoDB。
我的docker-compose.yml包含以下代码:
version: '3'
services:
mongo:
build: mongo
ports:
- "27017:27017"使用上面的配置,我尝试构建MongoDB docker容器,但得到了错误:
Failed: error connecting to db server: no reachable servers 这个问题看起来与mongoimport Docker Failed: error connecting to the db server: no reachable servers类似,但我真的尝试了mongoimport Docker Failed: error connecting to the db server: no reachable servers中给出的所有建议,但始终无法解决此错误。
有人能帮上忙吗?
发布于 2020-07-15 01:13:01
RUN mkdir -p /opt/acrc/config
COPY *.json /opt/acrc/config/
RUN mongod --fork --logpath=/tmp/mongodb.log && sleep 20 && \
mongoimport -c=users -d=acrc --mode=upsert --file=/opt/acrc/config/users.json && \
mongoimport -c=tasks -d=acrc --mode=upsert --file=/opt/acrc/config/tasks.json && \
mongoimport -c=configs -d=acrc --mode=upsert --file=/opt/acrc/config/configs.json && \
mongoimport -c=agentGroupConfigs -d=acrc --mode=upsert --file=/opt/acrc/config/agentGroupConfigs.json 发布于 2018-12-07 15:34:44
只有在启动镜像的容器之后,mongo数据库才会启动。Dockerfile只负责镜像中的文件和文件夹,但不会启动任何服务。
要将json导入数据库,您可以编写一个bash脚本,该脚本将启动mongo服务并导入json。您可以将此脚本设置为您的图像的入口脚本。
https://stackoverflow.com/questions/53660740
复制相似问题