Han*_*ian 17 c# docker asp.net-core
您可以使用它dotnet dev-certs https来生成与 ASP.NET 一起使用的自签名证书,如该 dockerfile 所示
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /src
RUN dotnet new webapi -o app
RUN dotnet dev-certs https
RUN dotnet publish -o out app/app.csproj
ENV ASPNETCORE_URLS="https://*:443;http://*:80"
WORKDIR /app
RUN cp -r /src/out/* .
CMD ["dotnet", "app.dll"]
Run Code Online (Sandbox Code Playgroud)
不过,我想将最终图像基于 aspnet 图像。所以我把它改为
FROM mcr.microsoft.com/dotnet/sdk:5.0 as build
WORKDIR /src
RUN dotnet new webapi -o app
RUN dotnet dev-certs https
RUN dotnet publish -o out app/app.csproj
FROM mcr.microsoft.com/dotnet/aspnet:5.0 as final
ENV ASPNETCORE_URLS="https://*:443;http://*:80"
WORKDIR /app
COPY --from=build /src/out .
CMD ["dotnet", "app.dll"]
Run Code Online (Sandbox Code Playgroud)
我可以构建它,但是当我运行它时,它会失败,因为它找不到证书。我无法dotnet dev-certs https在最终映像中运行,因为 dev-certs 命令只是 SDK 的一部分,而不是 aspnet 映像。我想将证书复制到最终图像,但我不知道dotnet dev-certs https它存储在哪里,也找不到有关它的任何文档。
我该如何解决这个问题,以便我的图像基于 aspnet 并且可以接受通过 https 的请求?
Han*_*ian 22
经过一番探索,我在 /root/.dotnet/corefx/cryptography/x509stores/my/ 中找到了证书
添加
COPY --from=build /root/.dotnet/corefx/cryptography/x509stores/my/* /root/.dotnet/corefx/cryptography/x509stores/my/
Run Code Online (Sandbox Code Playgroud)
到最终图像解决了这个问题。
| 归档时间: |
|
| 查看次数: |
14886 次 |
| 最近记录: |