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
}
任何想法我在做什么错吗?
回答如下:更多推荐
docker mongo
发布评论