Open4

yunibuild: CygwinのWindowsコンテナ化

okuokuokuoku

Process isolationコンテナがデスクトップWindowsでもちゃんと動きそうなので、手元のプロジェクトのWindows環境はもうコンテナ化してしまうことにした。

  • yunibaseは各種Scheme処理系をビルドするためにVisual StudioとCygwinが必要
  • yuniframeはPythonとVisual Studioが必要
  • RibbonはCygwinとVisual StudioがTier1なので必要
  • WasmLinuxは専用のLLVMが必要 -- これは後まわしで良いかな。。

難しいのはCygwinかな。。Cygwinの標準setupはシステムにインストールされないのでプロジェクト毎に追加パッケージを抱えるのが難しい。というわけで最も大量のパッケージを必要とするyunibaseに合わせる。

okuokuokuoku

とりあえず用意

https://github.com/okuoku/yunibuild/commit/6071caa0bde1d4069f37c6aeae80700a8c756a55

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