数据库"/>
将用户认证为docker上的mongo数据库
我正在尝试在现有项目中使用docker。我有两个额外的服务,redis和mongodb。我在创建用户和验证该用户能够使用数据库方面遇到问题。我不想通过运行容器(docker exec -it ...)并创建用户并在那儿授予权限来做。这样,每个开发人员都必须在自己的计算机上执行此操作。相反,我想让脚本在创建mongodb映像时运行。
我在这里尝试的方式
const {
DATABASE_HOST,
DATABASE_PORT,
DATABASE_DBNAME,
DATABASE_DBUSER,
DATABASE_DBPASS,
} = require('../configs');
console.log('DATABASE', DATABASE_HOST);
db.createUser({
user: DATABASE_DBUSER,
pwd: DATABASE_DBPASS,
roles: [
{
role: 'readWrite',
db: DATABASE_DBNAME,
},
],
});
docker-compose.yml
version: "3.7"
# Lets define all our services (i.e. our containers to run)
services:
# create a mongodb database
travel-db:
image: mongo
container_name: "travel-db"
env_file:
- ./.env
volumes:
- ./src/helpers/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- "mongodb:/data/db/"
# opening mongodb port so that it can be connected from host
ports:
- "27017:27017"
# create redis-server
travel-redis-server:
image: redis:latest
container_name: "travel-redis-server"
env_file:
- ./.env
volumes:
- redis:/data/
ports:
- "6379:6379"
# express app
travel-express-server:
image: "travel-express-server"
container_name: "travel-express-server"
env_file:
- ./.env
volumes:
- .:/usr/src/app
ports:
- "8000:8000"
volumes:
mongodb: {}
redis: {}
我收到以下错误
回答如下:require
在mongo shell中不是函数。如果您需要从文件中读取JavaScript代码,请使用load
函数。
更多推荐
将用户认证为docker上的mongo数据库
发布评论