簡體   English   中英

Windows Docker: Issues installing Visual C++ Redistributable in Windows Docker

[英]Windows Docker: Issues installing Visual C++ Redistributable in Windows Docker

對此完全陌生.. 使用 .net 6.0。

嘗試將 vc_redist.x64 安裝到 windows docker 以使用命令行界面運行 windows exe。 在網上搜索想出了這個添加到 docker 文件,但未安裝 redist (盡管構建 output 顯示RUN vc_redist.x64.exe /install /quiet /norestart /log vc_redist.log行執行沒有錯誤,我可以運行 exe。在 docker 圖像上,我找不到與 vc_redist 關聯的 dll。我做錯了什么?

FROM mcr.microsoft.com/windows/servercore:ltsc2019
ADD https://aka.ms/vs/16/release/vc_redist.x64.exe vc_redist.x64.exe
RUN vc_redist.x64.exe /install /quiet /norestart /log vc_redist.log    

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

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

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

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

我發現我可以使用以下代碼將其安裝到 docker 映像上:

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
RUN [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; `
    Invoke-WebRequest "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"; `
    Start-Process -filepath C:\vc_redist.x64.exe -ArgumentList "/install", "/passive", "/norestart" -Passthru | Wait-Process; `
    Remove-Item -Force vc_redist.x64.exe;

來源: https://github.com/microsoft/dotnet-framework-docker/issues/15

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM