亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將特定的 JRE 添加到 .Net Dockerfile

將特定的 JRE 添加到 .Net Dockerfile

躍然一笑 2023-05-10 13:34:15
我正在設置一個 .net Docker 映像,其中包含一些 .net 代碼。然而,該代碼需要訪問非常特定版本的 Java 運行時 ( jre-7u9-windowsx64.exe)。我不知道從哪里開始將這個可執行文件添加到我的 dotnet Dockerfile 中。dotnet 的當前 DockerfileFROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-envWORKDIR /name# Copy csproj and restore as distinct layersCOPY *.csproj ./RUN dotnet restore# Copy everything else and buildCOPY . ./RUN dotnet publish -c Release -o out# Build runtime imageFROM mcr.microsoft.com/dotnet/core/aspnet:2.2WORKDIR /appCOPY --from=build-env /app/out .ENTRYPOINT ["dotnet", "name.dll"]我只想將 JRE 添加到 Dockerfile,以便在 Docker 啟動時安裝或可用。
查看完整描述

1 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

因為 JRE 構成了運行時環境的一部分,所以您需要將它安裝到您的# Build runtime image.

您的理想目標是找到足以同時運行 ASP.NET 和您的 .NET 代碼以及 JRE 和您的 Java 代碼的最小公倍數。

選項 #1:查找同時運行 ASP.NET 和 JRE 的(受信任的)容器映像

據推測,您已經采用了這種方法但沒有成功。

選項 #1:從您當前工作的解決方案開始并添加

我不熟悉mcr.microsoft.com/dotnet/core/aspnet,但這可能足以作為您的基線,并且它的優勢在于您知道它將運行您的 .NET 應用程序。

因此,您的過程將是確定您還需要安裝什么(如果有的話)才能運行jre-7u9-windowsx64.exe

確定這一點的一種 hacky 方法是插入此二進制文件的任何安裝程序(第 13-14 行之間)。RUN這將采用jre-7u9-windowsx64.exe 安裝程序的形式。然后,嘗試構建您的容器并查看會出現什么錯誤。

一種更深思熟慮的方法是確定您是否需要安裝額外的軟件包來支持jre-7u9-windowx64.exe,如果需要,您將需要RUN ...預先安裝那些(使用進一步的)命令。

選項 #2:從最小基線開始并添加

或者,您可以從更基礎的基線開始。我假設這里的操作系統是 Windows 而不是 Linux。大概有一個最小的 Windows 容器映像?

然后你需要添加任何需要的東西:

  • 讓 ASP.NET 和您的 .NET 代碼正常工作

  • 讓 JRE 和您的 Java 代碼正常工作

這將為您的圖像提供更深思熟慮的基礎,但代價是要求您解決兩個難題。

選項 #3:從工作的 JRE 映像開始并添加

為了完整性而包括在內,但在這種情況下不推薦。


查看完整回答
反對 回復 2023-05-10
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號