docker-compose 构建mongodb并导入基础数据示例

使用docker-compose构建mongodb服务并导入基础数据示例。

1、文件目录结构

——mongo/

       |——docker-compose.yml

       |——mongo-Dockerfile

       |——setup.sh

       |——data/

               |——xxx1.json

               |——xxx2.json

2、docker-compose.yml

 1 services:
 2     mongo_db:
 3         build:
 4           context: .
 5           dockerfile: mongo-Dockerfile
 6         restart: always
 7         ports:
 8           - "27019:27017"
 9         volumes:
10           - "/home/volumes/mongo:/data/db"
11           - "/etc/localtime:/etc/localtime"

3、mongo-Dockerfile

1 FROM mongo:3.4
2 ENV WORKSPACE /usr/local/work
3 ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d
4 ENV INSTALL_MONGO_SHELL setup.sh
5 RUN mkdir -p $WORKSPACE
6 COPY ./data/*.json $WORKSPACE/
7 COPY ./$INSTALL_MONGO_SHELL $AUTO_RUN_DIR/
8 RUN chmod a+x $AUTO_RUN_DIR/$INSTALL_MONGO_SHELL

4、setup.sh

 1 #!/bin/bash
 2 mongo <<EOF
 3 use admin;
 4 db.createUser({ user: 'root', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
 5 
 6 use new_db;
 7 db.createCollection("collection1");
 8 db.createCollection("collection2");
 9 EOF
10 
11 mongoimport --db new_db --collection collection1 --file $WORKSPACE/xxx1.json
12 mongoimport --db new_db --collection collection2 --file $WORKSPACE/xxx2.json

5、在docker-compose.yml目录下执行

1 docker-compose up -d

over。

猜你喜欢

转载自www.cnblogs.com/dowi/p/9767189.html