@atomist/sdm
Version:
Atomist Software Delivery Machine SDK
55 lines • 2.37 kB
TypeScript
import { ExecuteGoal } from "../../../api/goal/GoalInvocation";
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