obuilder
obuilder copied to clipboard
Windows support / Docker backend
This is a tracking issue to cover getting OBuilder working with Windows and introducing support for Windows builds into ocaml-ci and opam-repo-ci.
The Idea (as it relates to OBuilder)
The two core components of OBuilder are the Sandbox and the Store, the initial Windows support will use Docker for Windows to provide both. The Sandbox is provided by a running Windows container using either HyperV or Process isolation, and the store is using docker images.
Incomplete list of tasks:
- [x] Docker & Windows prerequisites https://github.com/ocurrent/obuilder/pull/116 (merge-me) Will possibly add more patches.
- [x] Add support for Docker/Windows spec https://github.com/ocurrent/obuilder/pull/117 (merge-me)
- [x] Docker backend https://github.com/ocurrent/obuilder/pull/75 Needs to debug OBuilder caches implemented as Docker volumes.
- [x] Add ocluster support for Windows https://github.com/ocurrent/ocluster/pull/143
- [ ] Support Windows builds in ocaml-ci Waiting on opam-2.2 and OCaml compiler packages for Windows.
- [ ] Support Windows builds in opam-repo-ci Waiting on opam-2.2 and OCaml compiler packages for Windows. Experimental branch using OCaml for Windows at https://github.com/ocurrent/opam-repo-ci/pull/218
- [ ] Support Windows builds in opam-health-check Waiting on opam-2.2 and OCaml compiler packages for Windows. Experimental branch using OCaml for Windows at https://github.com/ocurrent/opam-health-check/pull/32.
Future work
- Revisit using buildkit on Windows https://github.com/moby/buildkit Sadly not available on Windows: https://github.com/microsoft/Windows-Containers/issues/34.
- Investigate using HCS and runHCS tooling https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/containerd.
- Investigate using zfs on Windows or NTFS native snapshot support as the Store.