firmament-docker
Version:
Typescript classes for performing Docker operations
91 lines (87 loc) • 2.56 kB
text/typescript
import {DockerUtilOptions} from './docker-util-options';
import {ForceError} from 'firmament-yargs';
export enum ImageOrContainer{
Image,
Container
}
export interface ImageOrContainerRemoveResults {
msg: string
}
export interface DockerImageOrContainer {
Id: string,
Name: string,
modem: Modem,
remove(opts: any, callback: (err: Error, obj: any)=>void): void;
firmamentId: string
}
export interface DockerImage extends DockerImageOrContainer {
Created: number,
Labels: any,
ParentId: string,
RepoDigests: any,
RepoTags: string[],
Size: number,
VirtualSize: number,
get(callback: (err: Error, obj: any)=>void): void;
history(callback: (err: Error, obj: any)=>void): void;
inspect(callback: (err: Error, obj: any)=>void): void;
push(opts: any, callback: (err: Error, obj: any)=>void, auth: any): void;
tag(opts: any, callback: (err: Error, obj: any)=>void): void;
}
export interface DockerContainer extends DockerImageOrContainer {
Status: string,
Names: string[],
start(opts: any, callback: (err: Error, obj: any)=>void): void;
stop(opts: any, callback: (err: Error, obj: any)=>void): void;
}
export interface Script {
RelativeWorkingDir: string,
Command: string,
Args: string[]
}
export interface ExpressApp {
GitUrl: string,
GitSrcBranchName: string,
StrongLoopBranchName: string,
StrongLoopServerUrl: string,
ServiceName: string,
GitCloneFolder: string,
ClusterSize: number,
ServicePort: number,
DeployExisting: boolean,
DoBowerInstall: boolean,
Scripts: Script[],
EnvironmentVariables: {}
}
export interface Modem {
ca: any,
cert: any,
checkServerIdentity: any,
host: any,
key: any,
port: any,
protocol: any,
socketPath: any,
timeout: any,
version: any
}
export interface DockerOde extends ForceError {
listImages(options: any, cb: (err: Error, images: DockerImage[])=>void): void;
listContainers(options: any, cb: (err: Error, containers: DockerContainer[])=>void): void;
getContainer(id: string, options?: any): DockerContainer;
getImage(id: string, options?: any): DockerImage;
buildImage(tarStream: any, options: any, cb: (err: Error, outputStream: any)=>void);
createContainer(containerConfig: any, cb: (err: Error, container: DockerContainer)=>void): void;
pull(imageName: string, cb: (err: Error, outputStream: any)=>void);
}
export interface ContainerConfig {
name: string,
Image: string,
DockerFilePath: string,
Hostname: string,
HostConfig: {
Links: string[],
PortBindings: {}
},
ExpressApps: ExpressApp[]
}