///
export interface IDockerComposeOptions {
cwd?: string;
executablePath?: string;
config?: string | string[];
configAsString?: string;
log?: boolean;
composeOptions?: string[] | (string | string[])[];
commandOptions?: string[] | (string | string[])[];
env?: NodeJS.ProcessEnv;
callback?: (chunk: Buffer, streamSource?: 'stdout' | 'stderr') => void;
}
export declare type DockerComposePortResult = {
address: string;
port: number;
};
export declare type DockerComposeVersionResult = {
version: string;
};
export declare type DockerComposeConfigResult = {
config: {
version: Record;
services: Record>;
volumes: Record;
};
};
export declare type DockerComposeConfigServicesResult = {
services: string[];
};
export declare type DockerComposeConfigVolumesResult = {
volumes: string[];
};
export interface IDockerComposeLogOptions extends IDockerComposeOptions {
follow?: boolean;
}
export interface IDockerComposeBuildOptions extends IDockerComposeOptions {
parallel?: boolean;
}
export interface IDockerComposePushOptions extends IDockerComposeOptions {
ignorePushFailures?: boolean;
}
export interface IDockerComposeResult {
exitCode: number | null;
out: string;
err: string;
}
export declare type TypedDockerComposeResult = {
exitCode: number | null;
out: string;
err: string;
data: T;
};
export declare type DockerComposePsResult = {
services: Array<{
name: string;
command: string;
state: string;
ports: Array<{
mapped?: {
address: string;
port: number;
};
exposed: {
port: number;
protocol: string;
};
}>;
}>;
};
export declare class DockerCompose {
private readonly composeVersion;
private readonly executablePath;
constructor(composeVersion?: 1 | 2, executablePath?: string);
private inferComposeVersion;
mapPsOutput(output: string, options?: IDockerComposeOptions): DockerComposePsResult;
/**
* Converts supplied yml files to cli arguments
* https://docs.docker.com/compose/reference/overview/#use--f-to-specify-name-and-path-of-one-or-more-compose-files
*/
private configToArgs;
/**
* Converts docker-compose commandline options to cli arguments
*/
private composeOptionsToArgs;
/**
* Executes docker-compose command with common options
*/
execCompose(command: string, args: (string | number)[], options?: IDockerComposeOptions): Promise;
/**
* Determines whether or not to use the default non-interactive flag -d for up commands
*/
private shouldUseDefaultNonInteractiveFlag;
upAll(options?: IDockerComposeOptions): Promise;
upMany(services: string[], options?: IDockerComposeOptions): Promise;
upOne(service: string, options?: IDockerComposeOptions): Promise;
down(options?: IDockerComposeOptions): Promise;
stop(options?: IDockerComposeOptions): Promise;
stopOne(service: string, options?: IDockerComposeOptions): Promise;
stopMany(options?: IDockerComposeOptions, ...services: string[]): Promise;
pauseOne(service: string, options?: IDockerComposeOptions): Promise;
unpauseOne(service: string, options?: IDockerComposeOptions): Promise;
kill(options?: IDockerComposeOptions): Promise;
rm(options?: IDockerComposeOptions, ...services: string[]): Promise;
exec(container: string, command: string | string[], options?: IDockerComposeOptions): Promise;
run(container: string, command: string | string[], options?: IDockerComposeOptions): Promise;
buildAll(options?: IDockerComposeBuildOptions): Promise;
buildMany(services: string[], options?: IDockerComposeBuildOptions): Promise;
buildOne(service: string, options?: IDockerComposeBuildOptions): Promise;
pullAll(options?: IDockerComposeOptions): Promise;
pullMany(services: string[], options?: IDockerComposeOptions): Promise;
pullOne(service: string, options?: IDockerComposeOptions): Promise;
config(options?: IDockerComposeOptions): Promise>;
configServices(options?: IDockerComposeOptions): Promise>;
configVolumes(options?: IDockerComposeOptions): Promise>;
ps(options?: IDockerComposeOptions): Promise>;
push(options?: IDockerComposePushOptions): Promise;
restartAll(options?: IDockerComposeOptions): Promise;
restartMany(services: string[], options?: IDockerComposeOptions): Promise;
restartOne(service: string, options?: IDockerComposeOptions): Promise;
logs(services: string | string[], options?: IDockerComposeLogOptions): Promise;
port(service: string, containerPort: string | number, options?: IDockerComposeOptions): Promise>;
version(options?: IDockerComposeOptions): Promise>;
}