社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

aspnetcore docker容器上的开发人员证书

Vočko • 3 年前 • 1345 次点击  

我是Docker新手,在Docker中运行我的应用程序时遇到了问题,因为缺少ssl证书。如何在docker中使用开发人员证书在非开发环境下运行aspnetcore应用程序?

我有以下几点 Dockerfile 由Visual Studio生成:

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["MyApp/MyApp.csproj", "MyApp/"]
COPY [...other libraries...]
RUN dotnet restore "MyApp/MyApp.csproj"
COPY . .
WORKDIR "/src/MyApp"
RUN dotnet build "MyApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]

当我使用默认设置(开发)从VisualStudio运行它时,它连接Docker,一切正常。但是,我想使用不同的appsettings文件( appsettings.docker.json )因为我在Docker中运行时需要一些不同的值,而且我已经在使用我的 appsettings.development.json 为我的标准运行从VS。因此,我设置 ASPNETCORE_ENVIRONMENT=Docker .这让我很痛苦,因为我突然得了感冒 InvalidOperationException :

System.InvalidOperationException: Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer certificate could not be found or is out of date.

To generate a developer certificate run 'dotnet dev-certs https'. To trust the certificate (Windows and macOS only) run 'dotnet dev-certs https --trust'.

基于 this 答案是,我发现当环境变量为 Development .对于一个不同的环境,如何解决这个问题?

我确实试过使用 dotnet dev-certs https 但是,Dockerfile中的命令生成失败,因为映像中没有sdk,因此不知道该命令。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129393
 
1345 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Hans Kilian
Reply   •   1 楼
Hans Kilian    3 年前

尝试添加这两行

FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
# Add the line below ---------------------------------------------------
RUN dotnet dev-certs https
WORKDIR /src
COPY ["MyApp/MyApp.csproj", "MyApp/"]
COPY [...other libraries...]
RUN dotnet restore "MyApp/MyApp.csproj"
COPY . .
WORKDIR "/src/MyApp"
RUN dotnet build "MyApp.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
# Add the line below ---------------------------------------------------
COPY --from=publish /root/.dotnet/corefx/cryptography/x509stores/my/* /root/.dotnet/corefx/cryptography/x509stores/my/
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyApp.dll"]