UNPKG

@adpt/cloud

Version:
69 lines 2.42 kB
import Adapt, { BuildHelpers, DeferredComponent } from "@adpt/core"; import { ServiceProps } from "../Service"; import { DockerContainerProps } from "./types"; /** * Props for {@link docker.ServiceContainerSet} * * @public */ export interface ServiceContainerSetProps extends ServiceProps { /** * Props to apply to all {@link docker.DockerContainer}s within this * ServiceContainerSet. If a prop is specified in the source {@link Container} * component and in `containerProps`, `containerProps` will take * precedence. */ containerProps?: Partial<DockerContainerProps>; /** * If set, all children of this ServiceContainerSet that support the * `dockerHost` prop will get this value, overriding any other value for * this prop. */ dockerHost?: string; } /** * A component for mapping a group of abstract {@link Container}s and * {@link NetworkService}s to Docker {@link docker.DockerContainer | DockerContainer}s * and {@link docker.NetworkService}s. * * @remarks * This component is intended to be used to replace {@link Container} and * {@link NetworkService} components that are grouped together, as the * only children of a common parent in a pattern that looks like this: * ```tsx * <Service> * <Container ... /> * <Container ... /> * <NetworkService ... /> * </Service> * ``` * `ServiceContainerSet` maps those abstract components into Docker components * like this: * ```tsx * <Group> * <docker.DockerContainer ... > * <docker.DockerContainer ... > * <docker.NetworkService ... > * </Group> * ``` * An example style rule to do this is: * ```tsx * {Service} * {Adapt.rule((matchedProps) => { * const { handle, ...remainingProps } = matchedProps; * return <ServiceContainerSet {...remainingProps} />; * })} * ``` * * Currently, {@link docker.NetworkService} implements the {@link NetworkServiceInstance} * interface, but does not deploy a network proxy component. So the Docker * ServiceContainerSet component applies the network port configuration specified by * the {@link NetworkService}s to their target * {@link docker.DockerContainer | DockerContainer}s. * * @public */ export declare class ServiceContainerSet extends DeferredComponent<ServiceContainerSetProps> { build(helpers: BuildHelpers): Adapt.AdaptElement<Adapt.AnyProps>; } //# sourceMappingURL=ServiceContainerSet.d.ts.map