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.42 ENV WORKSPACE /usr/local/work3 ENV AUTO_RUN_DIR /docker-entrypoint-initdb.d4 ENV INSTALL_MONGO_SHELL setup.sh5 RUN mkdir -p $WORKSPACE6 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 EOF10 11 mongoimport --db new_db --collection collection1 --file $WORKSPACE/xxx1.json12 mongoimport --db new_db --collection collection2 --file $WORKSPACE/xxx2.json

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

1 docker-compose up -d

over。

 

相关文章