0

我有一个连接到 MongoDb Atlas Cloud 数据库的 .net / c# aspnet 核心应用程序。在本地运行时,一切正常。

现在我将应用程序放在高山 docker 映像中,应用程序连接失败。我有一些不同的异常指出身份验证不起作用。

这是我的 DockerFile 构建和运行应用程序

FROM microsoft/dotnet:2.1-sdk-alpine AS builder
WORKDIR /
COPY . .
RUN dotnet publish Api/Api.csproj -o /dockerout/ -c Release

FROM microsoft/dotnet:2.1.3-aspnetcore-runtime-alpine
WORKDIR /app
EXPOSE 80 5000

RUN apk update

COPY --from=builder /dockerout .

ENTRYPOINT ["dotnet", "Api.dll"]
4

1 回答 1

2

经过大量研究,我发现了一个问题,指出了根本原因: https ://github.com/dotnet/corefx/issues/9608#issuecomment-401370142

因为我花了很多时间,所以我会回答我自己的问题,希望有人能节省时间。

有两种可能的解决方案是 a) 不要使用 alpine 映像 b) 在构建映像时更新 openssl 包,方法是像这样添加 open sslapk add --no-cache openssl

完整的 DockerFile 为我解决了这个问题:

FROM microsoft/dotnet:2.1-sdk-alpine AS builder
WORKDIR /
COPY . .
RUN dotnet publish Api/Api.csproj -o /dockerout/ -c Release

FROM microsoft/dotnet:2.1.3-aspnetcore-runtime-alpine
WORKDIR /app
EXPOSE 80 5000

RUN apk update && apk add --no-cache openssl

COPY --from=builder /dockerout .

ENTRYPOINT ["dotnet", "Api.dll"]
于 2018-09-06T06:47:05.840 回答