val run_as_opam : ('a, unit, string, Dockerfile.t) Stdlib.format4 -> 'a
run_as_opam fmt
runs the command specified by the fmt
format string as the opam
user.
val install_opam_from_source : ?prefix:string -> branch:string -> unit -> Dockerfile.t
Commands to install OPAM via a source code checkout from GitHub. The branch
can be a git tag or branch (e.g. 2.0
for opam 2.x or master
for the latest trunk version). The binaries are installed under <prefix>/bin
, defaulting to /usr/local/bin
.
val gen_opam2_distro : ?clone_opam_repo:bool -> ?arch:Ocaml_version.arch -> ?labels:(string * string) list -> Dockerfile_distro.t -> string * Dockerfile.t
gen_opam2_distro d
will generate a Dockerfile for Linux distribution d
.
- returns
a tuple of the Docker tag and the Dockerfile. If
clone_opam_repo
is true (the default) then the Dockerfile will also git clone the official opam-repository into/home/opam/opam-repository
. Ifarch
is not specified, it defaults to the base image that is assumed to be multiarch (the main exception to this is i386, which requires different base images from amd64).
val opam2_mirror : string -> Dockerfile.t
opam2_mirror hub_id
generates an opam2 mirror archive that stores the results of opam admin make
in the container when built. This container is suitable to serve as an archive mirror using cohttp-lwt-unix
val all_ocaml_compilers : string -> Ocaml_version.arch -> Dockerfile_distro.t -> string * Dockerfile.t
all_ocaml_compilers hub_id arch distro
will generate an opam2 container that has all the recent OCaml compilers installed into a distribution distro
on architecture arch
.
val separate_ocaml_compilers : string -> Ocaml_version.arch -> Dockerfile_distro.t -> (string * Dockerfile.t) list
separate_ocaml_compilers hub_id arch distro
will install a list of Dockerfiles that build individual OCaml compiler versions and their variants (e.g. flambda) in separate containers.
val bulk_build : string -> Dockerfile_distro.t -> Ocaml_version.t -> string -> Dockerfile.t
bulk_build hub_id distro ov rev
will setup a bulk build environment for OCaml version ov
on distribution distro
using the Git revision rev
from opam-repository.
val deprecated : Dockerfile.t
deprecated
is a minimal container that outputs a deprecation error. This is used to replace unsupported containers on the Hub rather than leaving an unmaintained distribution lying around with possible security holes.