Davit - UI macOS แบบเนทีฟสำหรับ Apple Containers
(davit.app)- Davit คือแอป macOS แบบเนทีฟสำหรับรันและจัดการคอนเทนเนอร์ Linux บน Mac ที่ใช้ Apple silicon ผ่านแพลตฟอร์ม container ของ Apple และสามารถใช้งานได้โดยไม่ต้องมี Docker Desktop
- สื่อสารโดยตรงกับ container daemon โอเพนซอร์สของ Apple ผ่าน XPC โดยใช้เส้นทางเดียวกับ CLI และไม่มี Electron, เว็บวิว หรือ background agent ของตัวเอง
- จัดการได้ครบในแอปเดียว ตั้งแต่เริ่ม·หยุดคอนเทนเนอร์, สตรีม log, เข้าถึง terminal, สำรวจไฟล์, build Dockerfile ไปจนถึงนำเข้า Compose
- ให้บริการเป็นแอปโอเพนซอร์สฟรีภายใต้ไลเซนส์ MIT ผ่านการเซ็นชื่อด้วย Apple Developer ID และ notarization แล้ว และต้องใช้ Mac Apple silicon ที่รัน macOS 15 ขึ้นไป
- ต่างจาก Docker Desktop ตรงที่ใช้ VM น้ำหนักเบาแยกต่อคอนเทนเนอร์ และเมื่อไม่มีคอนเทนเนอร์กำลังรันอยู่ background service ของแพลตฟอร์มจะ idle ที่ประมาณ 25MB
เป้าหมายและสภาพแวดล้อมการใช้งานของ Davit
- Davit คือแอป macOS แบบเนทีฟเต็มรูปแบบสำหรับแพลตฟอร์ม container ของ Apple
- รันคอนเทนเนอร์ Linux บน Apple silicon และ ไม่ต้องใช้ Docker Desktop
- เป็นโอเพนซอร์สฟรีและเผยแพร่ภายใต้ ไลเซนส์ MIT
- แอปถูกเซ็นชื่อและ notarized ด้วย Apple Developer ID
- ข้อกำหนดคือ Mac Apple silicon ที่รัน macOS 15 ขึ้นไป
- ติดตั้งได้จาก release หรือผ่าน Homebrew
brew install wouterdebie/tap/davit
สื่อสารโดยตรงกับ container daemon ของ Apple
- Davit สื่อสารโดยตรงกับ daemon container โอเพนซอร์สของ Apple ผ่าน XPC
- เส้นทางนี้เป็นเส้นทางสื่อสารเดียวกับที่
containerCLI ใช้ - ไม่ใช้ Electron, เว็บวิว หรือ background agent ของตัวเอง
ฟีเจอร์จัดการคอนเทนเนอร์
- แดชบอร์ดแสดง service, การใช้ดิสก์ และ CPU แบบเรียลไทม์ของคอนเทนเนอร์ทั้งหมดที่กำลังรันอยู่
- ในรายการคอนเทนเนอร์ สามารถตรวจสอบสถานะและสั่งงานได้ทันทีจากแต่ละแถว
- เริ่ม, หยุด, รีสตาร์ต, ลบ
- CPU แบบเรียลไทม์
- หน่วยความจำ
- IP
- หน้าของแต่ละคอนเทนเนอร์มีฟีเจอร์ช่วยดูสถานะการรันร่วมด้วย
- Streaming logs พร้อมโหมด follow และ boot
- กราฟสถานะแบบเรียลไทม์
- ตรวจสอบการตั้งค่าดิบ
- สำหรับคอนเทนเนอร์ที่กำลังรันอยู่ สามารถเปิด terminal ได้ทันทีผ่าน native API
- เปิด interactive shell ใน Terminal หรือ iTerm ได้
- ไม่ต้องใช้ CLI
การแก้ไขคอนเทนเนอร์แบบ immutable และการเข้าถึงไฟล์
- เนื่องจากคอนเทนเนอร์เป็นแบบ immutable Davit จึงช่วยสร้างคอนเทนเนอร์ใหม่ที่กรอกค่าล่วงหน้าจากการตั้งค่าเดิมได้
- การตั้งค่าคอนเทนเนอร์ใหม่จะสะท้อนค่าตั้งค่าเดิม ยกเว้น entrypoint และ env ของ image
- ออกแบบมาให้เหมาะกับ workflow ที่เปลี่ยน port, environment variable, mount และ resource ได้รวดเร็ว
- สามารถสำรวจ filesystem ของคอนเทนเนอร์ที่กำลังรันอยู่ภายในแอปได้
- ย้ายไปตามโฟลเดอร์
- ดาวน์โหลดไฟล์มายัง Mac
- อัปโหลดไฟล์
- ลบไฟล์
- งานเกี่ยวกับไฟล์ประมวลผลผ่าน native API และไม่ต้องใช้คำสั่ง
docker cp
นำเข้า Compose และ build Dockerfile
- Davit เปิด
docker-compose.ymlเพื่อแสดง resource ที่จะถูกสร้างขึ้นล่วงหน้า- service ตามลำดับ dependency
- volume
- network
- คำสั่ง CLI ที่เทียบเท่าสำหรับแต่ละ service
- คำเตือนสำหรับรายการที่ไม่รองรับ
- แพลตฟอร์มของ Apple ไม่มี compose แบบเนทีฟ ดังนั้น Davit จึง orchestrate stack เองโดยตรง
- การนำเข้า Compose รองรับ subset ที่กำหนด
- รองรับ: image, ports, environment, named/bind volumes, networks, resource limits, command, user, working_dir
- ตัวอย่างรายการที่จะแจ้งเตือน:
restart:,healthcheck:,build:
- สามารถ build Dockerfile ได้จาก Images → Build Image
- เลือกโฟลเดอร์ context และ Dockerfile
- ตั้งค่า tag และ build args
- Davit ขับตัว builder ที่อิง BuildKit ของ Apple โดยตรง และเริ่มให้หากจำเป็น
- ปัจจุบันยังมีข้อจำกัดของแพลตฟอร์ม
- Dockerfile ที่เกิน 16KiB จะถูกปฏิเสธ
- เรื่องนี้เชื่อมโยงกับ upstream apple/container bug
- build context ไม่สามารถอยู่ใต้
/tmpได้
Image, volume, network และ registry
- Davit รองรับงานที่เกี่ยวกับ image
- pull พร้อมดูความคืบหน้า
- รันคอนเทนเนอร์จาก image
- กำหนด tag
- prune
- มีงานสำหรับ volume และ network ด้วย
- สร้าง volume พร้อมกำหนดขนาด
- สร้าง subnet ที่ผู้ใช้กำหนดเอง
- ตรวจสอบรายการที่ใช้งานอยู่ก่อนลบ
- การล็อกอิน registry ทำได้จาก Settings → Registries
- Docker Hub
- ghcr.io
- quay.io
- registry OCI ใดก็ได้
- credential จะถูกตรวจสอบกับ registry ก่อนบันทึก
- credential ที่ผ่านการตรวจสอบแล้วจะบันทึกใน macOS login keychain และแชร์กับ
containerCLI - Docker Hub ต้องใช้งาน access token แทนรหัสผ่าน
การตั้งค่าแพลตฟอร์มและการติดตั้งอัตโนมัติ
- Davit สามารถแก้ไขการตั้งค่าแพลตฟอร์มได้ภายในแอป
- CPU/หน่วยความจำเริ่มต้นสำหรับคอนเทนเนอร์ใหม่
- registry
- DNS
- resource ของ builder
- การตั้งค่าถูกตรวจสอบด้วย config loader ของแพลตฟอร์มเอง และบันทึกเป็น TOML override ที่สะอาด
- หากยังไม่ได้ติดตั้งแพลตฟอร์ม Apple container Davit จะดาวน์โหลด installer ที่ Apple เซ็นชื่อไว้ ตรวจสอบความถูกต้อง แล้วติดตั้งลงใน Library ของผู้ใช้
- ขั้นตอนติดตั้งไม่ต้องใช้สิทธิ์ผู้ดูแลระบบ
- หากต้องการ ยังสามารถเพิ่ม
containerCLI เข้าไปใน shell ได้ด้วย
การพัฒนาแอปและ workflow เริ่มต้น
- Davit พัฒนาทั้งหมดด้วย SwiftUI
- มี quick action บน menu bar
- ไอคอน Dock แสดงได้เฉพาะเมื่อผู้ใช้ต้องการ
- ไม่เปิด browser เพื่อ render กราฟแบบเรียลไทม์
- ตัวอย่าง workflow เริ่มต้นมีดังนี้
- ติดตั้งจาก Releases หรือผ่าน Homebrew
- เมื่อเปิดครั้งแรก หากยังไม่มีแพลตฟอร์ม Davit จะติดตั้งให้
- pull
nginxdemos/helloจาก Images → Pull Image - รันจาก image หรือใช้ Containers → Run Container
- map host
8088ไปยังคอนเทนเนอร์80 - กด Open in Browser ในแถว Ports ของคอนเทนเนอร์ หรือเข้า
localhost:8088 - สำรวจ CPU, หน่วยความจำ, ดิสก์, log, ไฟล์, terminal และฟีเจอร์ Edit & Recreate ในคอนเทนเนอร์ที่กำลังรันอยู่
ความแตกต่างจาก Docker Desktop และ OrbStack
- Davit ใช้ engine ของ Apple
- คอนเทนเนอร์แต่ละตัวรันใน VM น้ำหนักเบาของตัวเองที่อิง Apple Virtualization framework
- มี IP address แยกต่อคอนเทนเนอร์
- ปรับแต่งมาสำหรับ Apple silicon
- ใช้ image แบบ OCI
- pull ได้จาก Docker Hub, ghcr.io, quay.io หรือ registry ใดก็ได้
- image ส่วนตัวก็ใช้ได้ผ่านการล็อกอิน registry
- ลิงก์กับ client library ของ Apple และสื่อสารโดยตรงผ่าน XPC
- ไม่มี socket shim
- ไม่มีสัญญาไลเซนส์
- ไม่มีบัญชีผู้ใช้
- app bundle มีขนาด 17MB
- ไม่มี Electron
- ไม่มี image VM ที่ bundle มา
- ไม่มี background service ของตัวเอง
- มีทิศทางต่างจาก OrbStack
- OrbStack เป็นแอปเชิงพาณิชย์ที่มีชั้น virtualization ของตัวเองที่เข้ากันได้กับ Docker
- Davit เป็น UI โอเพนซอร์สฟรีบนแพลตฟอร์ม Apple container
- Davit ไม่มี resident item เมื่อไม่มีคอนเทนเนอร์ ใช้ IP ต่อคอนเทนเนอร์และ bridge network และแยกคอนเทนเนอร์ออกจากกันเข้มงวดกว่า
- OrbStack เหนือกว่าในด้านความเข้ากันได้แบบ drop-in กับ
dockerCLI/API และการรองรับเครื่องมือที่กว้างกว่า - ทั้งสองรัน image มาตรฐาน OCI ได้
หน่วยความจำ, DNS และความปลอดภัย
- โครงสร้างหน่วยความจำเป็นแนวทางที่ไม่ต้องมี Linux VM ขนาดหลาย GiB เปิดอยู่ตลอดเวลา
- Docker Desktop คง VM ขนาดใหญ่ไว้หนึ่งตัวไม่ว่าจะมีคอนเทนเนอร์รันอยู่หรือไม่ แต่แพลตฟอร์มของ Apple จะบูต VM น้ำหนักเบาต่อคอนเทนเนอร์และปิดเมื่อคอนเทนเนอร์หยุด
- เมื่อไม่มีคอนเทนเนอร์กำลังรันอยู่ background service ของแพลตฟอร์มจะ idle ที่ประมาณ 25MB
- Davit เองเป็นแอป SwiftUI แบบเนทีฟ ไม่ใช่ Electron และหน่วยความจำที่ใช้ส่วนใหญ่เป็นหน่วยความจำของ macOS framework ที่แชร์กัน
- หากต้องการเข้าถึงจาก Mac ด้วยชื่อคอนเทนเนอร์ สามารถใช้โดเมน DNS แบบ local ของแพลตฟอร์มได้
- รัน
sudo container system dns create testหนึ่งครั้ง หรือใช้โดเมนของตัวเอง - ตั้งค่าเป็นโดเมนเริ่มต้นที่ Settings → Platform → DNS
- คอนเทนเนอร์
webจะตอบสนองจาก Mac ที่web.test
- รัน
- คอนเทนเนอร์ทุกตัวมี IP ของตัวเอง และ IP จะแสดงในส่วน Network
- หากรัน Avahi ภายใน guest จะสามารถ broadcast alias
.localmDNS ได้ - ทุก release ถูกเซ็นชื่อและ notarized ด้วย Apple Developer ID จึงเปิดได้โดยไม่มีคำเตือนจาก Gatekeeper
- แอปเป็นโอเพนซอร์สภายใต้ไลเซนส์ MIT และสามารถอ่านหรือ build เองได้
- Davit สื่อสารเฉพาะกับ container daemon ในเครื่องและการตรวจสอบอัปเดตบน GitHub เท่านั้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
กลยุทธ์ที่ดีที่สุดที่ผมใช้ในยุค AI คือ ไม่ทำอะไรเลย
เคยนึกไอเดียคล้าย ๆ กันและคิดว่าน่าจะทำได้ด้วย vibe coding แต่คิดว่าคงมีใครสักคนสนใจมากกว่าและทำออกมาก่อน ซึ่งก็เป็นจริง
แอปดูดี และตั้งตารอที่จะได้ลองใช้
ในฐานะไอเดียฟรี ๆ ผมอยาก ขังเอเจนต์ไว้ในเครื่องเสมือน แล้วส่งคำสั่งจากนอกเครื่องเสมือนผ่าน harness เพื่อควบคุมเอเจนต์ที่ติดตั้งอยู่ข้างใน ตามอุดมคติแล้วบนโฮสต์ไม่ควรต้องติดตั้งอะไรอย่าง Codex/Claude
แนวทางที่เจ๋งกว่านั้นคือสร้างบัญชีผู้ใช้หลายบัญชีในเครื่องเสมือน แล้วจำกัดไฟล์ซิสเต็มและนโยบายเครือข่ายแยกตามผู้ใช้ แบบนั้นเอเจนต์สำหรับพัฒนา, เอเจนต์ QA ฯลฯ จะมีมุมมองงานที่ต่างกัน และกลายเป็นชั้นฐานที่ทรงพลังสำหรับการทำอัตโนมัติเพิ่มเติม
แน่นอนว่าควรสามารถ “แนบ” ทรัพยากรต่าง ๆ เช่น DB, คิว, โวลุ่มภายนอก เข้ากับเครื่องเสมือน เพื่อให้เอเจนต์ใช้งานตามสิทธิ์ได้
https://GitHub.com/instavm/coderunner
เพื่อความโปร่งใส ผมเคยส่ง PR ไปที่นั่นอยู่สองสามอัน
https://github.com/webcoyote/sandvault
ตั้งแต่ช่วงปลายวัย 20 หรือต้นวัย 30 ผมแทบหยุดพัฒนาอะไรในเวลาว่างไปเกือบหมด เพราะความสนุกที่เคยได้จากการเขียนโค้ดหายไปหมดแล้ว จริง ๆ แล้วเดิมทีก็ไม่ได้ชอบขนาดนั้น แค่ตัดสินไม่ค่อยได้ว่าอะไรคุ้มค่ากับเวลาหรือไม่
ต่อให้คิดถึงโปรแกรมหรือสคริปต์ที่ถ้ามีก็คงดี ส่วนใหญ่ก็ “ผลตอบแทนไม่คุ้มกับความพยายาม” เหมือนตาราง xkcd ที่คำนวณเวลาคืนทุนของการสร้างโปรแกรมเพื่อประหยัดเวลาไม่กี่นาทีต่อสัปดาห์ หรือไม่ก็เป็นของที่ไม่ได้จำเป็น แต่ถ้ามีก็น่าสนใจหรือสนุก ทว่าถ้าจะสร้างจริงต้องใช้เวลามากมายจนไม่คุ้มเลย
ถ้ามีใครสร้างสิ่งที่ผมต้องการแล้วปล่อยออกมาก็ดีไป ถ้าไม่มีก็ช่วยไม่ได้
การเปลี่ยนแปลงใหญ่ที่ LLM นำมาคือ ตอนนี้เราสามารถทำสคริปต์เล็ก ๆ ออกมาได้ในไม่กี่นาที ด้วยค่าใช้จ่ายไม่กี่เซนต์ไปจนถึงไม่กี่ดอลลาร์ ผมเลยกำลังหยิบไอเดียเฉพาะทางสุด ๆ ที่หมักไว้นานกลับมาดูอีกครั้ง
เรื่องที่เมื่อก่อนอาจต้องใช้เวลาหลายสุดสัปดาห์แค่ไล่อ่าน API และเอกสารที่ไม่คุ้นเคย ตอนนี้ทำได้ภายใน 30 นาที หรืออย่างน้อยก็ตัดสินได้ในไม่กี่นาทีแทนที่จะเป็นหลายชั่วโมงว่าเรื่องนี้ทำไม่ได้หรือน่ารำคาญเกินไปจนควรทิ้งไปตลอดกาล
ผมชอบรันโมเดลเปิดขนาดกลางถึงใหญ่ แต่ไว้ใจไม่ได้ว่าโมเดลพวกนั้นจะไม่หลุดคุม เลยทำขึ้นมา และตั้งใจจะแชร์เร็ว ๆ นี้
รู้สึกว่ามันน่าจะง่ายประมาณติดตั้ง Claude ในเครื่องเสมือน แล้วเชื่อมต่อผ่านเทอร์มินัล SSH ก็พอ ถ้าต้องการ GUI ก็ใช้ส่วนขยาย Remote SSH ของ VSCode เพื่อให้ได้ UI อย่าง file browser ได้
คิดว่าน่าจะติดตั้ง Claude ของ VSCode หรือส่วนขยายแชตอื่น ๆ ไว้ในเครื่องเสมือนได้เหมือนกัน
สิ่งที่เด่นกว่าตัวโปรเจกต์นี้เองคือ ปรากฏการณ์ที่หลายคน โดยเฉพาะในช่วงราว 1 ปีที่ผ่านมา คาดการณ์ไว้ได้ กำลังเร่งเร็วขึ้นอย่างเห็นได้ชัด ตอนนี้ผู้คนสามารถสร้างเวอร์ชันของตัวเองจากไอเดียเดียวกันได้ เร็วกว่าเดิมมาก
ลองค้นหาประมาณ 10 นาที ก็พบโปรเจกต์ Swift ที่คล้ายกันหลายตัว และส่วนใหญ่เพิ่งเกิดขึ้นไม่กี่สัปดาห์หรือไม่กี่เดือนเท่านั้น
https://github.com/tdeverx/contained-app
https://github.com/nico81/iContainer
https://github.com/wouterdebie/davit
https://github.com/Augani/dory
https://github.com/tofa84/berth
https://github.com/erdaltoprak/ContainerUtility
https://github.com/andrew-waters/orchard
ถ้ารวมโปรเจกต์ที่ดาว GitHub น้อยกว่า, เป็นแบบ command line เท่านั้น, หรือไม่ใช่ Swift ก็มีอีกมาก แต่ใจความคือแบบนี้
ผู้คนจะค่อย ๆ สามารถสร้างซอฟต์แวร์เวอร์ชันของตัวเองตามที่ต้องการได้มากขึ้น เมื่อเป็นเช่นนั้น มูลค่าของซอฟต์แวร์ที่คนอื่นสร้างจะลดลง ยุคของ ซอฟต์แวร์เฉพาะบุคคลขั้นสุด กำลังมาถึง
เมื่อก่อนเรายังพอประเมินแรงที่ลงไปกับของแบบนี้ได้จากความสมบูรณ์ของเว็บไซต์หรือองค์ประกอบผิวเผินบางอย่าง ตอนนี้ส่วนพวกนั้นทำให้เสร็จได้ง่าย ๆ ด้วย LLM
คล้ายกัน เมื่อฝุ่นเริ่มจาง หนึ่งในผลกระทบใหญ่ที่สุดที่ Kickstarter ทิ้งไว้คือวิดีโอพิตช์ 3 นาทีพัฒนาและถูกขัดเกลาอย่างดุดันมากขึ้น
แต่ไม่รู้ว่าสิ่งนั้นจะนำไปสู่การนำไปใช้งานจริงและโรดแมปที่คิดมาอย่างลึกซึ้งจริง ๆ รวมถึงแรงขับเคลื่อนจริงหรือไม่
ดูเหมือนเป็นแอปที่แน่นมากจริง ๆ ขนาด 17MB และชอบที่ใช้ไลบรารี ContainerAPIClient โดยตรง
ใน 3 วันมีคอมมิต 28 ครั้ง, Swift 5,015 บรรทัด และทุกคอมมิตมี “Co-Authored-By: Claude Fable 5” ติดมาด้วย
อีกอย่างที่ดีคือมีการเซ็นและ notarize แล้ว พอลองติดตั้ง ตอนเปิดครั้งแรกมันดาวน์โหลดคอมโพเนนต์ของแพลตฟอร์มคอนเทนเนอร์ที่จำเป็นมาให้
ถ้าจะเสนอแนะ อยากให้เพิ่มทูทอเรียลเริ่มต้นบนเว็บไซต์ แนะนำอิมเมจสักตัวสำหรับทดลอง แล้วแสดงวิธีรันอิมเมจนั้นและสิ่งที่ทำได้ด้วยสกรีนช็อตหรือวิดีโอไม่มีเสียง
กล่องโต้ตอบสร้างอิมเมจแนะนำ “nginx:latest” แต่สำหรับเดโมเริ่มต้นยังไม่ค่อยดีนัก
nginx:latest แสดงให้เห็นว่าระบบท่อทำงานได้ แต่ไม่ได้แสดงให้เห็นชัดนักว่า Apple Containers ให้ความรู้สึกต่างจาก Docker Desktop หรือ OrbStack ตรงไหน
ถ้าเป็นตัวอย่างแอปเล็ก ๆ ที่มี volume, port mapping และลูป rebuild ง่าย ๆ น่าจะทำให้เห็นคุณค่าได้ง่ายกว่ามาก
ฮ่า! ดูเหมือนพวกเราก็ทำของแบบเดียวกัน: https://container-ui.fly.dev/
ตอนนี้เริ่มคิดว่าไม่น่าเผา token ไปตั้งเยอะเลย
ดูเรียบร้อยดีนะ สุดท้ายเราทุกคนก็กำลังทำของแบบเดียวกันอยู่สินะ ><
ใช้ OrbStack ด้วยความชอบมาเกือบ 2 ปีแล้ว
อินทิเกรตได้ดี เร็ว และ เข้ากันได้กับคำสั่ง docker สำหรับผมจึงคุ้มที่จะจ่าย
แต่ก็จะลองตัวนี้ดูเหมือนกัน
จุดแข็งของ OrbStack คือคอนเทนเนอร์ทั้งหมดรันอยู่ใน Linux virtual machine ตัวเดียว และมีการทำ optimization หลายอย่างทั้งสองฝั่งของขอบเขต virtual machine รวมถึงการใช้ sparse image file ที่ช่วยประหยัดพื้นที่ดิสก์ฝั่ง macOS ได้มาก
ถ้ารันคอนเทนเนอร์บน macOS เกิน 4–5 ตัว ประสิทธิภาพและการลดการใช้ทรัพยากรของ OrbStack จะยิ่งเห็นผลเร็วมาก
ดีมากจริง ๆ การดาวน์โหลด runtime แล้วรัน nginx:latest ทำงานได้สมบูรณ์
เวลาเลื่อนลงใน GitHub แล้วเห็น Claude เป็น contributor มันเริ่มกลายเป็นสัญญาณว่าแอปน่าจะดี แบบให้ความรู้สึกเนทีฟและไม่ใช่ Electron อะไรทำนองนั้น
อยากให้ Apple เพิ่ม ความเข้ากันได้กับ docker API ให้ Apple Containers
ไม่มีอย่าง port forwarding หรือ host volume จริง ๆ แล้วโฟกัสอยู่ที่การรัน buildkit บน Mac
แต่ docker CLI และ buildx อินทิเกรตได้เต็มที่
https://github.com/cpuguy83/crucible
ฟีเจอร์ก็ดี และชอบตรงที่เป็น แอป SwiftUI เนทีฟ ขนาดเล็กด้วย
เมื่อไม่นานมานี้ผมเขียนบทความ [1] เกี่ยวกับการใช้ Apple containers สำหรับการเขียนโค้ดแบบ agentic และเพิ่งอัปเดตให้กล่าวถึง Davit แล้ว สำหรับโปรเจกต์ส่วนตัว บน Mac สองเครื่องที่บ้าน ผมชอบใช้ Apple containers มากกว่า Docker เยอะ
[1] https://open.substack.com/pub/marklwatson/p/running-opencode...
ถ้าเทียบกับ OrbStack แล้วเป็นยังไง? Apple Containers ให้อะไรที่รู้สึกได้ในด้าน developer experience ไหม? ตามการใช้งานของผม ตัว OrbStack ก็รู้สึกเร็วปานสายฟ้าอยู่แล้ว
ไม่กี่วันก่อนผมโพสต์เวอร์ชันคล้าย ๆ กันที่ทำเอง แต่แทบไม่มีคนตอบรับเลย
เผื่อใครสนใจ มันเป็นแอปบน menu bar ที่รองรับ คอนเทนเนอร์, เครื่อง, registry
https://news.ycombinator.com/item?id=48789503
https://github.com/erdaltoprak/ContainerUtility