123456789101112131415161718192021222324252627282930313233(** Volume and mount types for container configuration *)typebind_mode=ReadWrite|ReadOnlytypemount=|Bindof{host_path:string;container_path:string;mode:bind_mode}|Volumeof{name:string;container_path:string;mode:bind_mode}|Tmpfsof{container_path:string;size:intoption}letbind?(mode=ReadWrite)~host~container()=Bind{host_path=host;container_path=container;mode}letvolume?(mode=ReadWrite)~name~container()=Volume{name;container_path=container;mode}lettmpfs?size~container()=Tmpfs{container_path=container;size}letmode_to_string=functionReadWrite->"rw"|ReadOnly->"ro"letto_docker_bind_format=function|Bind{host_path;container_path;mode}->Printf.sprintf"%s:%s:%s"host_pathcontainer_path(mode_to_stringmode)|Volume{name;container_path;mode}->Printf.sprintf"%s:%s:%s"namecontainer_path(mode_to_stringmode)|Tmpfs{container_path;size}->letsize_opt=matchsizewithSomes->Printf.sprintf",size=%d"s|None->""inPrintf.sprintf"type=tmpfs,destination=%s%s"container_pathsize_optletcontainer_path=function|Bind{container_path;_}->container_path|Volume{container_path;_}->container_path|Tmpfs{container_path;_}->container_path