我有一个.net / c#aspnet核心应用程序,它连接到MongoDb Atlas Cloud数据库。当运行localy时,每件事都运行正常。
现在我把应用程序放在一个高山的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"]
经过大量的研究,我发现了一个问题,指出了根本原因:https://github.com/dotnet/corefx/issues/9608#issuecomment-401370142
因为我花了很多时间才回答自己的问题,希望有人节省时间。
有两种可能的解决方案:a)不使用高山图像b)通过添加像这样的qzxswpoi这样的开放式ssl来构建图像时更新openssl包
完整的DockerFile为我解决了它:
apk add --no-cache openssl