UNPKG

lakutata

Version:

An IoC-based universal application framework.

242 lines (235 loc) 6.5 kB
import { Provider, Time } from './TypeDef.internal.96.js'; import { Dockerode } from './TypeDef.internal.16.js'; import { ContainerRestartPolicy, ContainerCapability, ContainerState, ContainerPort, ContainerBind, ContainerDevice, ContainerNetwork, ContainerStats, ImageConfig } from './TypeDef.internal.109.js'; import { ImageTagOptions, ImageExportOptions, ImagePushOptions, ImageRemoveOptions } from './TypeDef.internal.106.js'; import { Docker } from './TypeDef.internal.104.js'; import { ContainerTTYConsoleSizeOptions, ContainerStopOptions, ContainerRemoveOptions, ContainerSettingOptions, ContainerCommitOptions, ContainerCreateTTYOptions, ContainerLogsOptions, ContainerExecOptions, ContainerKillOptions, ContainerExportDirectoryOptions } from './TypeDef.internal.110.js'; import stream__default from 'stream'; import { Logger } from './TypeDef.internal.95.js'; declare class DockerContainerTTY extends Provider { #private; protected readonly log: Logger; protected readonly container: Dockerode.Container; protected readonly cmd: string | string[]; protected readonly initialConsoleSize?: ContainerTTYConsoleSizeOptions; /** * Initializer * @protected */ protected init(): Promise<void>; /** * Destroyer * @protected */ protected destroy(): Promise<void>; /** * Get tty duplex stream */ get raw(): stream__default.Duplex; /** * Get tty writable stream */ get writable(): stream__default.Writable; /** * Get tty readable stream */ get readable(): stream__default.Readable; /** * Resize tty console size * @param options */ resize(options: ContainerTTYConsoleSizeOptions): Promise<void>; /** * Set on data handler * @param handler */ onData(handler: (chunk: Buffer) => void): void; /** * Write data to duplex stream * @param data */ write(data: string): void; /** * Write data to duplex stream * @param data */ write(data: Buffer): void; } declare class DockerContainer extends Provider { #private; protected readonly getDockerode: () => Dockerode; protected readonly getDocker: () => Docker; id: string; name: string; hostname: string; image: DockerImage; restartCount: number; privileged: boolean; tty: boolean; env: Record<string, string>; memoryLimit: number; cpuSet: number[]; restartPolicy: ContainerRestartPolicy; OOMKillDisable: boolean; capabilities: ContainerCapability[]; state: ContainerState; ports: ContainerPort[]; binds: ContainerBind[]; devices: ContainerDevice[]; networks: ContainerNetwork[]; cgroup: string | undefined; cgroupParent: string | undefined; pidMode: string | undefined; createdAt: Time; /** * Initializer * @protected */ protected init(): Promise<void>; /** * Destroyer * @protected */ protected destroy(): Promise<void>; /** * Sync container info from docker * @protected */ protected syncContainerInfo(): Promise<void>; /** * Start container * @param options */ start(): Promise<void>; /** * Stop container * @param options */ stop(options?: ContainerStopOptions): Promise<void>; /** * Pause container */ pause(): Promise<void>; /** * Unpause container */ unpause(): Promise<void>; /** * Restart container * @param options */ restart(options?: ContainerStopOptions): Promise<void>; /** * Remove container * @param options */ remove(options?: ContainerRemoveOptions): Promise<void>; /** * Update container * @param options */ update(options: ContainerSettingOptions): Promise<void>; /** * Create a new image from a container * @param options */ commit(options?: ContainerCommitOptions): Promise<DockerImage>; /** * Create container TTY * @param options */ createTTY(options?: ContainerCreateTTYOptions): Promise<DockerContainerTTY>; /** * Get container logs readable stream * @param options */ logs(options?: ContainerLogsOptions): Promise<NodeJS.ReadableStream>; /** * Get container stats */ stats(): Promise<ContainerStats>; /** * Run command in container * @param options */ exec(options: ContainerExecOptions): Promise<string>; /** * Kill container * @param options */ kill(options?: ContainerKillOptions): Promise<void>; /** * Get a tar archive of a resource in the filesystem of current container * @param options */ exportDirectory(options: ContainerExportDirectoryOptions): Promise<void>; } declare class DockerImage extends Provider { #private; protected readonly getDockerode: () => Dockerode; protected readonly getDocker: () => Docker; id: string; repoTags: string[]; createdAt: Time; arch: string; os: string; platform: string; size: number; config: ImageConfig; /** * Initializer * @protected */ protected init(): Promise<void>; /** * Destroyer * @protected */ protected destroy(): Promise<void>; /** * Sync image info from docker * @protected */ protected syncImageInfo(): Promise<void>; /** * Tag image * @param options */ tag(options: ImageTagOptions): Promise<void>; /** * Export docker image * @param options */ export(options: ImageExportOptions): Promise<void>; /** * Push docker image to repository * @param options */ push(options: ImagePushOptions): Promise<void>; /** * Remove docker image * @param options */ remove(options?: ImageRemoveOptions): Promise<void>; /** * Create container by current image then start it * @param options */ run(options: ContainerSettingOptions): Promise<DockerContainer>; } /** * Parse raw ENV filed to record * @param rawEnv * @constructor */ declare function ParseEnvToRecord(rawEnv?: string[]): Record<string, string>; /** * Parse repository tag * @param input * @constructor */ declare function ParseRepositoryTag(input: string): { repo: string; tag?: string; }; export { DockerContainer, DockerContainerTTY, DockerImage, ParseEnvToRecord, ParseRepositoryTag };