【发布时间】:2021-08-15 08:02:09
【问题描述】:
当应用程序开始运行时,我必须在 MongoDB 中的 Collection 中插入一些示例数据。我已经完成了以下步骤,但没有成功。
- 在 init_script 文件夹下创建了
entrypoint.js
entrypoint.js
use admin;
db.createUser(
{
user: "patient_db",
pwd: "14292",
roles: [ { role: "readWrite", db: "patient_db" } ]
}
);
db.grantRolesToUser( "patient_db", [{ role: "readWrite", db: "patient_db"}]);
- 在资源路径中创建了
data.js文件
src/main/resources/data.js
use patient_db;
db.createCollection("holiday");
db.holiday.insert({holiday_date:'25-12-2021',holiday_name:'Christmas',created_by:'John Wick',modified_by:'John_Wick',created_date_time:'2021-04-25 04:23:55',modified_date_time:'2021-04-25 04:23:55'});
- 配置了 docker-compose.yml
docker-compose.yml
version: "3"
services:
patient-service:
image: patient-service:1.0
container_name: patient-service
ports:
- 9090:9090
restart: on-failure
networks:
- patient-mongo
depends_on:
- mongo-db
links:
- mysql-db
mongo-db:
image: mongo:latest
container_name: mongo-db
ports:
- 27017:27017
networks:
- patient-mongo
volumes:
- 'mongodata:/data/db'
- './init_scripts:/docker-entrypoint-initdb.d'
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=14292
restart: unless-stopped
networks:
patient-mongo:
volumes:
mongodata:
4.最后,连接MongoDB
properties-dev.yml
spring:
data:
mongodb:
host: mongo-db
port: 27017
database: patient_db
【问题讨论】:
-
我在问 MongoDB 容器。在关于本地机器上托管的本地 MongoDB 的问题中
-
如果数据库运行在容器中,或者在同一个系统上,或者在云中,应该没有什么不同;虽然@RandyCasburn 提到的问题没有很多细节,但我希望那里的整体技术也可以在基于 Docker 的设置中工作。
标签: java mongodb spring-boot docker docker-compose