@twg-group/container-manager
Version:
Container management for Docker, Swarm, Kubernetes
30 lines (29 loc) • 1.02 kB
TypeScript
import { Task } from 'dockerode';
import { DeployConfigDto, InfoDto, LogDto } from '@dto';
import { BaseStrategy } from './base.strategy';
import { Logger } from '@twg-group/nestjs-logger';
export interface SwarmTaskExtended extends Task {
Status?: {
State?: 'running' | 'failed' | 'complete' | 'shutdown';
Error?: string;
Timestamp?: string;
ContainerStatus?: {
ContainerID: string;
};
};
}
export declare class SwarmStrategy extends BaseStrategy {
protected logger: Logger;
private readonly docker;
constructor(logger: Logger);
start(id: string): Promise<void>;
stop(id: string, timeout?: number): Promise<void>;
private createPortConfigs;
private createMounts;
private formatEnvironment;
deploy(config: DeployConfigDto): Promise<string>;
private formatServiceInfo;
list(): Promise<InfoDto[]>;
remove(serviceId: string): Promise<void>;
logs(id: string, since?: string, tail?: number): Promise<LogDto[]>;
}