ฉันดิ้นรนมานานกว่าหนึ่งสัปดาห์เพื่อให้ได้คอนเทนเนอร์ Windows เพื่อทำงานกับ Azure App Service การตั้งค่าเริ่มต้นของฉันคือการใช้อินสแตนซ์คอนเทนเนอร์มาตรฐาน แต่ดูเหมือนว่าคุณมีตัวเลือกสำหรับเครือข่ายสาธารณะหรือส่วนตัวเท่านั้น แทนที่จะกำหนดเอง (ไม่เหมือนกับคอนเทนเนอร์ Linux) ดูเหมือนว่าถ้าคุณเรียกใช้คอนเทนเนอร์ Windows ภายในบริการแอพ คุณจะได้รับตัวเลือกเครือข่ายแบบเดียวกับที่คุณได้รับจากเว็บไซต์อื่นๆ การสนับสนุน Azure สำหรับคอนเทนเนอร์ Windows ใน App Services คือ อายุเกือบหนึ่งปีแต่มีทรัพยากรค่อนข้างน้อยที่จะจัดการกับมัน นอกเหนือจากสถานการณ์พื้นฐานมากๆ
จุดประสงค์ของฉันในการใช้คอนเทนเนอร์คือการเรียกใช้บริการ Windows พื้นหลังของบุคคลที่สามตามต้องการโดยไม่ต้องใช้โอเวอร์เฮดของ VM เนื่องจากมันใช้บริการแอพ ฉันจึงตัดสินใจเพิ่ม asp.net core rest endpoint สำหรับข้อมูลสถานะบางอย่าง คอนเทนเนอร์ของฉันขึ้นอยู่กับ mcr.microsoft.com/windows/servercore:ltsc2019
. ฉันดาวน์โหลดและติดตั้ง .net และแกน asp.net (อิมเมจพื้นฐานมี .net framework เท่านั้น) ติดตั้งบริการของฉัน สร้างและเรียกใช้เว็บไซต์ จากนั้นจุดเข้าใช้งานของฉันคือสคริปต์ Powershell ที่อัปเดตค่าการกำหนดค่าบางอย่างและเรียกใช้ asp ปลายทางหลักสุทธิซึ่งจัดการบริการ
ถ้าฉันใช้พอร์ทัล ฉันสามารถเลือกตัวเลือกสำหรับคอนเทนเนอร์ vs โค้ด, Windows กับ Linux และเริ่มต้นสิ่งต่าง ๆ ด้วย ภาพเริ่มต้นอย่างรวดเร็วขั้นพื้นฐานแต่รูปภาพของฉันเองใน Azure Container Registry เริ่มทำงานไม่ถูกต้อง ฉันใช้หนึ่งใน ภาพฐานที่รองรับและทำงานได้ดีบนเครื่องของฉัน บน Azure มันสร้างทุกอย่าง แต่ไม่เคยเริ่มทำงานเลย การบันทึกจำนวนเล็กน้อยบ่งชี้ว่าเริ่มทำงาน ติดตั้งวอลุ่มการแชร์ไฟล์ จากนั้นโดยทั่วไปก็แค่ตาย:
- สร้างคอนเทนเนอร์สำหรับรูปภาพ
- กำลังพยายามเริ่มคอนเทนเนอร์
- เริ่มคอนเทนเนอร์สำเร็จ
- คอนเทนเนอร์เริ่มทำงานแล้ว
- โทรกำหนดค่ายูทิลิตี้คอนเทนเนอร์
- กำหนดค่ายูทิลิตีคอนเทนเนอร์เสร็จแล้ว
- คอนเทนเนอร์เริ่มทำงานแล้ว
- ความพยายามที่จะหยุดคอนเทนเนอร์
- กำลังพยายามยุติคอนเทนเนอร์
- กำลังพยายามนำคอนเทนเนอร์ออก
- นำคอนเทนเนอร์ออกเรียบร้อยแล้ว
แปลกเช่นกัน แม้จะใช้รูปภาพเริ่มต้นอย่างรวดเร็ว แต่ฉันไม่เห็นคอนเทนเนอร์อินสแตนซ์จริง น่าจะเป็นเพราะมันทำงานใน App Service Plan โดยตรง แม้ว่าจะไม่มีความชัดเจนก็ตาม จากเว็บแอป ฉันสามารถไปที่ App Service Plan (แผน Windows Containers) ซึ่งภายใต้แอป จะแสดงแอปเดียวที่มีประเภทเป็น "แอป คอนเทนเนอร์ หน้าต่าง" แต่ฉันไม่พบการเข้าถึงเพื่อดูบันทึกของคอนโซลหรือ เรียกใช้เชลล์อย่างที่ฉันทำได้ด้วยทรัพยากรประเภทคอนเทนเนอร์อิมเมจ ในภาพหน้าจอบางภาพที่ฉันเจอ ฉันเห็นลิงก์ "การตั้งค่าคอนเทนเนอร์" ใต้ "การตั้งค่า" ซึ่งฉันไม่มี แต่อาจเป็นเพราะเหตุผลบางประการสำหรับคอนเทนเนอร์ Linux
ดังนั้น ฉันจะแก้ไขปัญหาเกี่ยวกับคอนเทนเนอร์ได้อย่างไรเมื่อทำงานภายในบริการแอป ฉันพลาดอะไรไปหรือเปล่า?