我正在使用dotnet core 2.2开发WebAPI服务。 我使用Docker桌面版在Windows上运行Linux容器。以下是我的docker-compose文件:
version: '3.4'
services:
mongo:
image: mongo
ports:
- 27017:27017
mongo-express:
image: mongo-express
ports:
- 8088:8081
depends_on:
- mongo
MyWebApi:
image: MyWebApi
build:
context: .
dockerfile: MyWebApi/Dockerfile
ports:
- 80:80
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=http://+:5003
depends_on:
- mongo
并且这是我的web api的Dockerfile:
FROM microsoft/dotnet:2.2-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80
#EXPOSE 443
FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY ["TMSApi/TMSApi.csproj", "TMSApi/"]
COPY ["BusinessEntities/BusinessEntities.csproj", "BusinessEntities/"]
COPY ["TMSService/TMSService.csproj", "TMSService/"]
COPY ["TMSRepository/TMSRepository.csproj", "TMSRepository/"]
RUN dotnet restore "TMSApi/TMSApi.csproj"
COPY . .
WORKDIR "/src/TMSApi"
RUN dotnet build "TMSApi.csproj" -c Debug -o /app
FROM build AS publish
RUN dotnet publish "TMSApi.csproj" -c Debug -o /app
FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "TMSApi.dll", "--environment=Development"]
在我的WebAPI appsettings.json文件中,我使用以下连接字符串:
mongodb://mongo:27017
在docker-compose文件中,我有3个服务:mongo、mongo-express和MyWebApi。当我使用localhost:8088时,mongo-express连接到mongo。
但是,当MyWebApi尝试连接到mongo服务时,出现超时错误。
你有什么想法如何解决这个问题吗?我想继续在docker容器内运行它。
我发现了一些最近关于这个主题的文章,但没有结果...
谢谢