import { ExecuteGoal } from "@atomist/sdm"; import { Container, ContainerRegistration, ContainerScheduler, GoalContainer } from "./container"; /** * Extension to GoalContainer to specify additional docker options */ export declare type DockerGoalContainer = GoalContainer & { dockerOptions?: string[]; }; /** * Additional options for Docker CLI implementation of container goals. */ export interface DockerContainerRegistration extends ContainerRegistration { /** * Containers to run for this goal. The goal result is based on * the exit status of the first element of the `containers` array. * The other containers are considered "sidecar" containers * provided functionality that the main container needs to * function. The working directory of the first container is set * to [[ContainerProjectHome]], which contains the project upon * which the goal should operate. * * This extends the base containers property to be able to pass * additional dockerOptions to a single container, eg. * '--link=mongo:mongo'. */ containers: DockerGoalContainer[]; /** * Additional Docker CLI command-line options. Command-line * options provided here will be appended to the default set of * options used when executing `docker run`. For example, if your * main container must run in its default working directory, you * can include `"--workdir="` in the `dockerOptions` array. */ dockerOptions?: string[]; } export declare const dockerContainerScheduler: ContainerScheduler; /** * Execute container goal using Docker CLI. Wait on completion of * first container, then kill all the rest. */ export declare function executeDockerJob(goal: Container, registration: DockerContainerRegistration): ExecuteGoal; /** * Generate container specific Docker command-line options. * * @param container Goal container spec * @param registration Container goal registration object * @return Docker command-line entrypoint, env, p, and volume options */ export declare function containerDockerOptions(container: GoalContainer, registration: ContainerRegistration): string[]; /** * Use a temporary under the home directory so Docker can use it as a * volume mount. */ export declare function dockerTmpDir(): string; //# sourceMappingURL=docker.d.ts.map