【发布时间】:2019-09-18 16:57:13
【问题描述】:
我正在运行包含我的 WebApi 和 MongoDB 的 docker-compose 文件 我已经创建了以下 docker-compose 文件,但是当我运行它时,我无法执行任何请求。
这是我的 docker compose 文件:
version: '3.1'
services:
mongo:
image: mongo
restart: always
environment:
MONGODB_USER: "admin"
MONGODB_DATABASE: "BooksDB"
MONGODB_PASS: "pass"
ports:
- 27017:27017
mongo-express:
image: mongo-express
restart: always
ports:
- 8081:8081
depends_on:
- mongo
webapi:
build: .
restart: always
ports:
- 5000:80
environment:
MongoDB__Host: mongo
depends_on:
- mongo
我在 docker 容器日志中收到以下错误:
fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HLPSARCVM003", Request id "0HLPSARCVM003:00000001": An unhandled exception was thrown by the application.
System.TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }. Client view of cluster state is { ClusterId : "1", ConnectionMode : "Automatic", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/localhost:27017" }", EndPoint: "Unspecified/localhost:27017", State: "Disconnected", Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server. ---> System.Net.Sockets.SocketException: Cannot assign requested address
at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state)
at System.Net.Sockets.Socket.UnsafeBeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state, Boolean flowContext)
at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state)
在 System.Net.Sockets.Socket.ConnectAsync(EndPoint remoteEP) 在 MongoDB.Driver.Core.Connections.TcpStreamFactory.ConnectAsync(套接字套接字,端点端点,CancellationToken 取消令牌) 在 MongoDB.Driver.Core.Connections.TcpStreamFactory.CreateStreamAsync(端点端点,CancellationToken 取消令牌) 在 MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelperAsync(CancellationToken cancelToken) --- 内部异常堆栈跟踪结束 ---
你知道我应该在那些 docker-compose 文件中改变什么吗?
【问题讨论】:
-
你解决了吗?
标签: c# mongodb docker .net-core docker-compose