![](/img/trans.png)
[英]Not able to connect to host database from asp.net core application which is in docker windows container
[英]Unable to connect to Docker .net Core 31. SDK container from host
我正在尝试从主机上的浏览器访问托管在 docker 容器中的 .net core webapi(Win 10 Pro 1903;使用 Linux 容器的 Docker Desktop 2.1.0.5)。
webapi 没有什么特别之处; 只是一个使用 .net core 3.1 sdk 的全新dotnet new webapi
项目。
我可以通过 docker 交互式终端和 kitematic 访问 webapi,所以一切都在那里闪闪发光。 当我尝试从主机连接到容器时,事情开始出错。 从浏览器访问容器/ping 失败(使用 localhost、127.0.0.1 和容器 ip)。
我确保一切都更新了,重新配置了几次端口,甚至在 mac 上尝试过,结果相同。
这是docker文件
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/sdk:3.1
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "webapi.dll"]
我不确定它是否是 SDK 映像的问题(我应该使用 nano 映像)还是 Kestral 配置的问题(我对此表示怀疑)。
任何建议都会很棒
编辑Docker-Compose
services:
app:
image: fooey/webapi
build:
context: .
dockerfile: Dockerfile
ports:
- "8000:5001"
对于手动启动docker run -p 8000:5001 --name api webapi
所以,这个问题原来是几件事。
处理此问题的适当方法是使用以下 Dockerfile:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
COPY *.csproj ./
RUN dotnet restore
COPY . ./
RUN dotnet publish -c Release -o out
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
ENV ASPNETCORE_URLS http://+:5000
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "webapi.dll"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.