最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

将用户认证为docker上的mongo数据库

网站源码admin22浏览0评论

将用户认证为docker上的mongo数据库

将用户认证为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函数。

发布评论

评论列表(0)

  1. 暂无评论