export interface ComposeInspectVolumes { [volumeName: string]: { external?: boolean | { name: string; }; name?: string; driver?: string; driver_opts?: { type: "none"; device: string; o: "bind"; } | { [driverOptName: string]: string; }; labels?: { [labelName: string]: string; }; }; } export interface ComposeServiceBuild { context?: string; dockerfile?: string; args?: { [varName: string]: string; }; } /** * Docs: https://docs.docker.com/compose/compose-file/deploy/#resources */ export interface ComposeServiceResources { resources: { limits?: { cpus?: number | string; memory?: string; pids?: number; }; reservations?: { cpus?: number | string; memory?: string; devices?: { capabilities?: string[]; driver?: string; count?: number; device_ids?: string[]; options?: { [key: string]: any; }; }; }; }; } /** * Docker compose file- * Ref: https://docs.docker.com/compose/compose-file/compose-file-v3/ */ export interface ComposeService { build?: string | ComposeServiceBuild; cap_add?: string[]; cap_drop?: string[]; command?: string; container_name?: string; depends_on?: string[]; deploy?: ComposeServiceResources; dns?: string; devices?: string[]; entrypoint?: string; environment?: { [key: string]: string; } | string[]; env_file?: string[]; expose?: string[]; extra_hosts?: string[]; healthcheck?: { test: string | string[]; interval?: string; timeout?: string; start_period?: string; retries?: string | number; }; image: string; labels?: { [labelName: string]: string; }; logging?: { driver?: string; options?: { [optName: string]: string | number | null; }; }; networks?: ComposeServiceNetworks; network_mode?: string; ports?: string[]; pid?: string; privileged?: boolean; restart?: string; security_opt?: string | string[]; stop_grace_period?: string; stop_signal?: string; ulimits?: { nproc: number; } | { nofile: { soft: number; hard: number; }; }; user?: string; volumes?: string[]; working_dir?: string; } export interface PackageEnvs { [envName: string]: string; } export interface ComposeServiceNetwork { ipv4_address?: string; aliases?: string[]; } export type ComposeServiceNetworks = string[] | ComposeServiceNetworksObj; export type ComposeServiceNetworksObj = { [networkName: string]: ComposeServiceNetwork; }; export interface ComposeNetworks { /** networkName: "dncore_network" */ [networkName: string]: ComposeNetwork | null; } export interface ComposeNetwork { external?: boolean; driver?: string; ipam?: { config: { /** subnet: "172.33.0.0/16" */ subnet: string; }[]; }; name?: string; } export interface Compose { version: string; services: { [dnpName: string]: ComposeService; }; networks?: ComposeNetworks; volumes?: ComposeVolumes; } export interface ComposeVolumes { /** volumeName: "dncore_ipfsdnpdappnodeeth_data" */ [volumeName: string]: ComposeVolume | null; } export interface ComposeVolume { external?: boolean; name?: string; driver?: string; driver_opts?: { type: "none"; device: string; o: "bind"; } | { [driverOptName: string]: string; }; labels?: { [labelName: string]: string; }; } export interface ComposePaths { /** './folder', [optional] directory to load the compose from */ dir?: string; /** 'manifest-admin.json', [optional] name of the compose file */ composeFileName?: string; } export declare const dockerComposeSafeKeys: (keyof ComposeService)[]; //# sourceMappingURL=compose.d.ts.map