我有一个.net / c#aspnet核心应用程序,该应用程序连接到MongoDb Atlas Cloud数据库。 在本地运行时,一切正常。
现在,我将应用程序放入高山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"]
答案 0 :(得分:1)
经过大量研究,我发现了一个问题,指出了根本原因: https://github.com/dotnet/corefx/issues/9608#issuecomment-401370142
因为我花了很多时间,所以我会回答自己的问题,希望有人可以节省时间。
有两种可能的解决方案是
a)不要使用高山图片
b)在构建映像时,通过添加apk 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"]