gpt4 book ai didi

.net - Docker-compose 与 .NET Core 无法访问

转载 作者:行者123 更新时间:2023-12-02 21:19:11 24 4
gpt4 key购买 nike

我是 Docker 新手,正在尝试设置 2 个容器,一个运行 mongoDB,一个运行 Web 应用程序。

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

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 up 运行时没有出现错误,Web 容器结果如下:

web_1 | Hosting environment: Production web_1 | Content root path: /app web_1 | Now listening on: http://[::]:80 web_1 | Application started. Press Ctrl+C to shut down.

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

Docker ps result

有什么想法吗?

最佳答案

看起来 .NET 在生产中使用端口 80,因此当我更改 docker 文件并导出端口 80 而不是 5000 并在 docker-compose 中将端口 5000 更改为端口 80 时,它会按预期工作。

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

关于.net - Docker-compose 与 .NET Core 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47838770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com