ฉันกำลังพยายามใช้ Visual Studio 2019 เพื่อพัฒนาแอป ASP.NET Core 3.1 ที่ทำงานบน Docker สำหรับ Windows ฉันมีปัญหาเล็กน้อยกับเรื่องนี้ ฉันต้องโฮสต์อุปกรณ์ปลายทางเพื่อเริ่มและหยุดบริการและให้ข้อมูลการตรวจสุขภาพ บริการได้รับการติดตั้งจาก MSI บุคคลที่สาม (ฉันต้องการเพียงแค่คัดลอกไฟล์ แต่เราไม่ต้องการเรียกใช้โดยไม่รองรับ รวมทั้งไฟล์และการเปลี่ยนแปลงรีจิสทรี) อิมเมจพื้นฐาน (dotnet/sdk, /core และ /aspnet) ใช้เซิร์ฟเวอร์นาโน ดังนั้นจึงไม่รองรับ MSI/msiexec ฉันได้ลองใช้รูปภาพจำนวนมากเพื่อค้นหารูปภาพที่รองรับ ASP.Net Core และ msiexec (เซิร์ฟเวอร์คอร์) แต่ดูเหมือนว่าจะมีเฉพาะรูปภาพขนาดใหญ่เท่านั้นที่เหมาะกับความต้องการของเรา (8+ GB เทียบกับ <500MB สำหรับรูปภาพนาโน) มีความเป็นไปได้อื่นที่นี่หรือไม่? ณ จุดนี้ ฉันไม่สามารถแม้แต่จะสร้างให้ทำงานอย่างสม่ำเสมอ ไฟล์จะสร้างแต่ไม่ได้อยู่ในอิมเมจสุดท้าย และถ้าพวกเขาสร้างมันขึ้นมา ฉันก็ดูเหมือนจะไม่โดนมัน (ลองพอร์ต 80/443, 5000/5001 หรือพอร์ตจริงที่เปิดเผย Docker กับ localhost หรือ IP ของคอนเทนเนอร์ ที่อยู่). เริ่มจะน่าหงุดหงิดแล้วสิ! ฉันชอบความช่วยเหลือใด ๆ
- การค้นหารูปภาพที่มีขนาดเหมาะสมที่รองรับ ASP.net Core 3.1 และ msiexec
- สร้างกระบวนการเพื่อเผยแพร่และคัดลอกไฟล์ไปยังภาพสุดท้ายอย่างเหมาะสม
- บริการสามารถเข้าถึงได้จากภายนอกคอนเทนเนอร์
ไฟล์นักเทียบท่าปัจจุบัน:
จากฐาน mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019 AS
เวิร์คดีอาร์ /app
เปิดเผย 80
เปิดเผย 443
#ติดตั้งดอทเน็ต
เพิ่ม https://download.visualstudio.microsoft.com/download/pr/c37ece76-1305-4042-a9e6-58e7cb1b0bf6/75c20ff59335e370985b4f03fa637fcb/aspnetcore-runtime-3.1.18-win-x64.exe /symedical/
เพิ่ม https://download.visualstudio.microsoft.com/download/pr/7d09d7c0-8902-4467-9268-d7f584923cde/eddcb12257e68b030bc1b4baf9a68681/dotnet-runtime-3.1.18-win-x64.exe /symedical/
RUN C:/symedical/aspnetcore-runtime-3.1.18-win-x64.exe /ติดตั้ง /เงียบ /norestart && \
C:/symedical/dotnet-runtime-3.1.18-win-x64.exe /ติดตั้ง /เงียบ
ARG InstallerSrc="dist/installers/ThirdPartyClientServices.msi"
ARG InstallerDest="/ติดตั้ง/"
เพิ่ม ${InstallerSrc} ${InstallerDest}
ARG InstallerSrc="dist/scripts/"
เพิ่ม ${InstallerSrc} ${InstallerDest}
RUN powershell -file "c:\dist\scripts\install-msi.ps1"
######
จาก mcr.microsoft.com/dotnet/sdk:3.1 AS build
เวิร์คดีอาร์ /src
สำเนา ["Distribution/Distribution.csproj", "Distribution/"]
RUN dotnet กู้คืน "Distribution/Distribution.csproj"
สำเนา .
WORKDIR "/src/การกระจาย"
RUN dotnet สร้าง "Distribution.csproj" -c Release -o /app/build
จาก build AS เผยแพร่
RUN dotnet เผยแพร่ "Distribution.csproj" -c Release -o /app/publish
จากฐานเป็นขั้นสุดท้าย
เวิร์คดีอาร์ /app
COPY --from=publish /app/publish
จุดเข้าใช้งาน ["ดอทเน็ต", "Distribution.dll"]