症状: 2a) 2b)我收到以下错误 (节点:25)UnhandledPromiseRejectionWarning:MongoTimeoutError:服务器选择在30000 ms之后超时
在超时时._onTimeout(/usr/src/app/node_modules/mongodb/lib/core/sdam/server_selection.js:309:9)
在listOnTimeout上(internal / timers.js:537:17)
在processTimers上(internal / timers.js:481:7)
(节点:25)UnhandledPromiseRejectionWarning:未处理的承诺被拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。要在未处理的承诺拒绝时终止节点进程,请使用CLI标志 docker-compose.yml: 和Dockerfile: 和在app.js中: 答案 0 :(得分:0) 将
docker-compose run mongo
,Mongo可以正常运行docker-compose run iotmap
或docker-compose up
,则只有节点启动,而不是Mongo容器加docker-compose ps
不显示任何内容,docker ps
显示e968900e41cc 6e70e14f1339 "/bin/sh -c 'npm sta…" 3 minutes ago Up 2 minutes 3000/tcp priceless_hawking
--unhandled-rejections=strict
(请参见https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode)。 (拒绝ID:1)
(节点:25)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。
错误:正在中止。volumes:
mongodata:
services:
iotmap:
container_name: iotmap
build: .
restart: always
ports:
- "3000:3000"
links:
- mongo
depends_on:
- mongo
mongo:
container_name: mongo
image: mongo:latest
restart: always
ports:
- "27017:27017"
volumes:
- mongodata:/data/db
FROM node:latest
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install --no-optional --no-shrinkwrap --no-package-lock
COPY . /usr/src/app
EXPOSE 3000
RUN npm start
mongoose.connect( "mongodb://mongo:27017/iotmap", {useUnifiedTopology: true, useNewUrlParser: true, useCreateIndex: true } );
1 个答案:
RUN npm start
更改为CMD [ "npm", "start" ]
,一切开始就像一个魅力!