首页 文章

Docker-使用.NET Core无法访问

提问于
浏览
0

我是Docker的新手,我试图设置2个容器,一个运行mongoDB,另一个运行Web应用程序 .

问题是我无法通过localhost:5000或0.0.0.0:5000访问我的.NET核心应用程序 .

Mongo运行正常 .

这是我的docker-compose.yml

version: '3'
services:
  web:
    build: .
    ports:
     - "5000:5000"
  mongo:
    build: ../../../docker/wishare-mongo/
    volumes:
     - ../../../docker/wishare-mongo:/data/db
    ports:
     - "27017:27017"

适用于.NET Core应用程序的Dockerfile

FROM microsoft/aspnetcore-build:2.0 AS build-env
WORKDIR /app
ENV ASPNETCORE_URLS="http://*:5000"

# Copy csproj and restore as distinct layers
COPY *.csproj ./
RUN dotnet restore

# Copy everything else and build
COPY . ./
RUN dotnet publish -c Release -o out

# Build runtime image
FROM microsoft/aspnetcore:2.0
WORKDIR /app
COPY --from=build-env /app/out .
EXPOSE 5000
ENTRYPOINT ["dotnet", "Wishare-Integration-Api.dll"]

docker-compose构建和docker-compose运行没有错误,导致web容器:

web_1 |托管环境: 生产环境 web_1 |内容根路径:/ app web_1 |现在收听:http:// [::]:80 web_1 |申请开始了 . 按Ctrl C关闭 .

这是docker ps的结果,应该根据docker ps结果导出端口5000 .

Docker ps result

有任何想法吗?

1 回答

  • 1

    看起来.NET在 生产环境 中使用端口80,所以当我改变了docker文件并导出端口80而不是5000并且还在docker-compose中将端口5000更改为端口80时它按预期工作 .

    所以我假设为了在端口5000上运行它,它需要在.NET端进行一些配置 .

相关问题