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

docker mongo

网站源码admin17浏览0评论

docker mongo

docker mongo

我正在尝试为我的应用设置mongo和mongo-express。这是我的docker compose文件

version: '3'

services:
    node:
        container_name: sandbox-app
        build:
            context: .
            dockerfile: Dockerfile
        ports:
            - '8888:8080'
        volumes:
            - '.:/usr/src/app'
            - '/usr/src/app/node_modules'
        networks:
            - localnet
        links:
            - mongo
    mongo:
        image: mongo
        container_name: sandbox-db
        ports:
            - '27017:27017'
        environment:
            MONGO_INITDB_ROOT_USERNAME: root
            MONGO_INITDB_ROOT_PASSWORD: example
        networks:
            - localnet
    mongo-express:
        image: mongo-express
        ports:
            - 8081:8081
        environment:
            ME_CONFIG_MONGODB_ADMINUSERNAME: root
            ME_CONFIG_MONGODB_ADMINPASSWORD: example
        depends_on:
            - mongo
        networks:
            - localnet

volumes:
    node_modules:
    web-root:
        driver: local
networks:
    localnet:
        driver: 'bridge'

这是我在index.js上的代码

const mongoose = require('mongoose');

mongoose.connect('mongodb://root:example@mongo:27017/sandbox-db-api', {
    useNewUrlParser: true,
    useCreateIndex: true,
});

const User = mongoose.model('User', {
    name: {
        type: String,
    },
    age: {
        type: Number,
    },
});

const me = new User({ name: 'John Doe', age: 34 });
me.save()
    .then(() => {
        console.log(me);
    })
    .catch((error) => {
        console.log('Error!', error);
    });

但是我在终端上遇到以下错误

2020-05-04T18:41:48.500+0000 I  ACCESS   [conn6] SASL SCRAM-SHA-1 authentication failed for root on sandbox-db-api from client 172.30.0.4:34844 ; UserNotFound: Could not find user "root" for db "sandbox-db-api"
sandbox-app | (node:41) UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoError: Authentication failed.
sandbox-app |     at Function._getError (/usr/src/app/node_modules/mongodb/lib/core/auth/scram.js:141:14)
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/auth/scram.js:191:31
sandbox-app  | 2020-05-04T18:41:48.506+0000 I  NETWORK  [conn6] end connection 172.30.0.4:34844 (3 connections now open)
sandbox-app |     at _callback (/usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:349:5)
sandbox-app |     at Connection.messageHandler (/usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:378:5)
sandbox-app |     at Connection.emit (events.js:311:20)
sandbox-app |     at processMessage (/usr/src/app/node_modules/mongodb/lib/core/connection/connection.js:384:10)
sandbox-app |     at Socket.<anonymous> (/usr/src/app/node_modules/mongodb/lib/core/connection/connection.js:553:15)
sandbox-app |     at Socket.emit (events.js:311:20)
sandbox-app |     at addChunk (_stream_readable.js:294:12)
sandbox-app |     at readableAddChunk (_stream_readable.js:275:11)
sandbox-app |     at Socket.Readable.push (_stream_readable.js:209:10)
sandbox-app |     at TCP.onStreamRead (internal/stream_base_commons.js:186:23) {
sandbox-app |   name: 'MongoError',
sandbox-app |   [Symbol(mongoErrorContextSymbol)]: {}
sandbox-app | }]
sandbox-app |     at Pool.<anonymous> (/usr/src/app/node_modules/mongodb/lib/core/topologies/server.js:438:11)
sandbox-app |     at Pool.emit (events.js:311:20)
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/connection/pool.js:561:14
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/connection/pool.js:994:11
sandbox-app |     at callback (/usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:97:5)
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:396:21
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/auth/auth_provider.js:66:11
sandbox-app |     at /usr/src/app/node_modules/mongodb/lib/core/auth/scram.js:193:16
sandbox-app |     at _callback (/usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:349:5)
sandbox-app |     at Connection.messageHandler (/usr/src/app/node_modules/mongodb/lib/core/connection/connect.js:378:5)
sandbox-app |     at Connection.emit (events.js:311:20)
sandbox-app |     at processMessage (/usr/src/app/node_modules/mongodb/lib/core/connection/connection.js:384:10)
sandbox-app |     at Socket.<anonymous> (/usr/src/app/node_modules/mongodb/lib/core/connection/connection.js:553:15)
sandbox-app |     at Socket.emit (events.js:311:20)
sandbox-app |     at addChunk (_stream_readable.js:294:12)
sandbox-app |     at readableAddChunk (_stream_readable.js:275:11)
sandbox-app | (node:41) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see .html#cli_unhandled_rejections_mode). (rejection id: 1)
sandbox-app | (node:41) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
task-manager-server | [nodemon] clean exit - waiting for changes before restart
sandbox-db  | 2020-05-04T18:44:37.453+0000 I  NETWORK  [listener] connection accepted from 127.0.0.1:42992 #7 (4 connections now open)
sandbox-db  | 2020-05-04T18:44:37.454+0000 I  NETWORK  [conn7] received client metadata from 127.0.0.1:42992 conn7: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "4.2.6" }, os: { type: "Linux", name: "Ubuntu", architecture: "x86_64", version: "18.04" } }

同样,当我登录mongo控制台并运行以下命令时,也会得到这些输出

MongoDB server version: 4.2.6
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        /
Questions? Try the support group
        
> show dbs
> db.runCommand("connectionStatus")
{
        "authInfo" : {
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
}

任何想法我在做什么错吗?

回答如下:

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论