package dockerfile-opam

  1. Overview
  2. Docs

Windows specific Dockerfile utility functions.

val run_cmd : ('a, unit, string, Dockerfile.t) format4 -> 'a

run_cmd fmt will execute cmd /S /C fmt.

val run_powershell : ?escape:(string -> string) -> ('a, unit, string, Dockerfile.t) format4 -> 'a

run_powershell fmt will execute powershell -Command "fmt".

  • parameter escape

    (defaults to Fun.id) allows to escape fmt because the calling shell (usually cmd) might interpret unwanted things in fmt. This might help embedding readable powershell code.

val run_vc : arch:Ocaml_version.arch -> ('a, unit, string, Dockerfile.t) format4 -> 'a

run_vc ~arch fmt will execute run fmt with Visual Compiler for ~arch loaded in the environment.

val run_ocaml_env : string list -> ('a, unit, string, Dockerfile.t) format4 -> 'a

run_ocaml_env args fmt will execute fmt in the environment loaded by ocaml-env exec with args.

val sanitize_reg_path : unit -> Dockerfile.t

sanitize_reg_path () adds the command necessary to remove a trailing backslash from the PATH value stored in the registry and must be called before any further manipulation of this variable is done in the Dockerfile.

val install_vc_redist : ?vs_version:string -> unit -> Dockerfile.t
val install_visual_studio_build_tools : ?vs_version:string -> string list -> Dockerfile.t
val ocaml_for_windows_package_exn : switch:Ocaml_version.t -> port:[ `Mingw | `Msvc ] -> arch:Ocaml_version.arch -> string * string

ocaml_for_windows_variant ~port ~arch returns the (package_name, package_version) of the OCaml compiler package in OCaml for Windows, if applicable.

val header : alias:string -> ?win10_revision:Distro.win10_lcu -> ?version:Distro.win_all -> unit -> Dockerfile.t

A Dockerfile header for multi-staged builds.

module Cygwin : sig ... end

Rules for Cygwin-based installation.

module Winget : sig ... end

Rules for winget installation.