If you decide to try https://devenv.sh, it has OCaml support built-in:
$ cat devenv.nix
{ config, ...}:
let
ocamlPackages = config.languages.ocaml.packages;
in {
languages.ocaml.enable = true;
packages = [ ocamlPackages.janeStreet.async ];
}
$ devenv shell
...
Recently also shipped 0.6 with container generation support: https://devenv.sh/containers/Let me know if you give it a try :)