Open4
yunibuild: CygwinのWindowsコンテナ化
Process isolationコンテナがデスクトップWindowsでもちゃんと動きそうなので、手元のプロジェクトのWindows環境はもうコンテナ化してしまうことにした。
- yunibaseは各種Scheme処理系をビルドするためにVisual StudioとCygwinが必要
- yuniframeはPythonとVisual Studioが必要
- RibbonはCygwinとVisual StudioがTier1なので必要
- WasmLinuxは専用のLLVMが必要 -- これは後まわしで良いかな。。
難しいのはCygwinかな。。Cygwinの標準setupはシステムにインストールされないのでプロジェクト毎に追加パッケージを抱えるのが難しい。というわけで最も大量のパッケージを必要とするyunibaseに合わせる。
とりあえず用意
Windows自体が5GiBほどあり、Cygwinのインストールで1GiBくらいを消費することになる。
C:\prog\docker>docker image history cygwin
IMAGE CREATED CREATED BY SIZE COMMENT
ddf6eef3b09c 46 minutes ago cmd /S /C move \noaslr-cygwin1.dll c:\cyg64\… 8.55MB
6a7b8ec3b7d5 47 minutes ago cmd /S /C #(nop) ADD file:0e17c5ca6c10116929… 3.05MB
d6bc9a5c898b 47 minutes ago cmd /S /C setup-x86_64.exe -s http://ftp.iij… 1.61GB
258b80ff2b38 2 hours ago cmd /S /C #(nop) ADD file:375a831df5a3d7fa5c… 1.45MB
ea8bd55b2643 2 hours ago cmd /S /C #(nop) SHELL [cmd /S /C] 41kB
85877332d6cb 2 years ago Install update 2004-amd64 2.42GB
<missing> 4 years ago Apply image 2004-RTM-amd64 2.65GB
2つpushしても1つしか残らない?
GitHub ActionsにDocker pushさせるようにしてみたら一時期パッケージが1つだけになっていた。 ...今見るとちゃんと2つ有るんだよなぁ。。
GitHub Actionsは最近Nested virtualizationをサポートした
... じゃぁHyper-V Container使わせてよ!同じマイクロソフトじゃん!
普通に --isolation hyperv
で行けた。。