iop
Version:
Ship Docker Anywhere
44 lines (43 loc) • 1.5 kB
TypeScript
import { IopConfig, ServiceEntry, IopSecrets } from "../config/types";
import { ServiceFingerprint } from "../utils/service-fingerprint";
import { DockerClient } from "../docker";
export interface ServiceDeploymentResult {
serviceName: string;
status: 'deployed' | 'skipped';
reason: string;
url?: string;
}
export interface DeploymentSummary {
deployed: ServiceDeploymentResult[];
skipped: ServiceDeploymentResult[];
}
interface DeploymentContext {
config: IopConfig;
secrets: IopSecrets;
targetServices: ServiceEntry[];
releaseId: string;
projectName: string;
networkName: string;
verboseFlag: boolean;
imageArchives?: Map<string, string>;
serviceFingerprints?: Map<string, ServiceFingerprint>;
}
/**
* Replaces a service container by stopping the old one and creating a new one
*/
/**
* Pure function to check if service configuration has changed
*/
export declare function checkServiceConfigChanges(currentConfig: any, desiredConfig: any, containerName: string): {
hasChanges: boolean;
reason?: string;
};
/**
* Checks if a service container needs to be updated based on configuration changes
*/
export declare function serviceNeedsUpdate(serviceEntry: ServiceEntry, dockerClient: DockerClient, context: DeploymentContext): Promise<boolean>;
/**
* Main deployment command that orchestrates the entire deployment process
*/
export declare function deployCommand(rawEntryNamesAndFlags: string[]): Promise<void>;
export {};