2596 lines
73 KiB
TypeScript
2596 lines
73 KiB
TypeScript
/* eslint-disable */
|
|
/**
|
|
* This file was automatically generated by json-schema-to-typescript.
|
|
* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,
|
|
* and run json-schema-to-typescript to regenerate this file.
|
|
*/
|
|
|
|
/**
|
|
* Compose application or sub-projects to be included.
|
|
*/
|
|
export type Include =
|
|
| string
|
|
| {
|
|
/**
|
|
* Path to the Compose application or sub-project files to include.
|
|
*/
|
|
path?: string | ListOfStrings;
|
|
/**
|
|
* Path to the environment files to use to define default values when interpolating variables in the Compose files being parsed.
|
|
*/
|
|
env_file?: string | ListOfStrings;
|
|
/**
|
|
* Path to resolve relative paths set in the Compose file
|
|
*/
|
|
project_directory?: string;
|
|
};
|
|
/**
|
|
* A list of string values.
|
|
*/
|
|
export type ListOfStrings = string[];
|
|
/**
|
|
* Development configuration for the service, used for development workflows.
|
|
*/
|
|
export type Development = {
|
|
/**
|
|
* Configure watch mode for the service, which monitors file changes and performs actions in response.
|
|
*/
|
|
watch?: {
|
|
/**
|
|
* Patterns to exclude from watching.
|
|
*/
|
|
ignore?: string | ListOfStrings;
|
|
/**
|
|
* Patterns to include in watching.
|
|
*/
|
|
include?: string | ListOfStrings;
|
|
/**
|
|
* Path to watch for changes.
|
|
*/
|
|
path: string;
|
|
/**
|
|
* Action to take when a change is detected: rebuild the container, sync files, restart the container, sync and restart, or sync and execute a command.
|
|
*/
|
|
action: "rebuild" | "sync" | "restart" | "sync+restart" | "sync+exec";
|
|
/**
|
|
* Target path in the container for sync operations.
|
|
*/
|
|
target?: string;
|
|
exec?: ServiceHook;
|
|
/**
|
|
* Ensure that an initial synchronization is done before starting watch mode for sync+x triggers
|
|
*/
|
|
initial_sync?: boolean;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} & Development1;
|
|
export type Development1 = {
|
|
/**
|
|
* Configure watch mode for the service, which monitors file changes and performs actions in response.
|
|
*/
|
|
watch?: {
|
|
/**
|
|
* Patterns to exclude from watching.
|
|
*/
|
|
ignore?: string | ListOfStrings;
|
|
/**
|
|
* Patterns to include in watching.
|
|
*/
|
|
include?: string | ListOfStrings;
|
|
/**
|
|
* Path to watch for changes.
|
|
*/
|
|
path: string;
|
|
/**
|
|
* Action to take when a change is detected: rebuild the container, sync files, restart the container, sync and restart, or sync and execute a command.
|
|
*/
|
|
action: "rebuild" | "sync" | "restart" | "sync+restart" | "sync+exec";
|
|
/**
|
|
* Target path in the container for sync operations.
|
|
*/
|
|
target?: string;
|
|
exec?: ServiceHook;
|
|
/**
|
|
* Ensure that an initial synchronization is done before starting watch mode for sync+x triggers
|
|
*/
|
|
initial_sync?: boolean;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
/**
|
|
* Deployment configuration for the service.
|
|
*/
|
|
export type Deployment = {
|
|
/**
|
|
* Deployment mode for the service: 'replicated' (default) or 'global'.
|
|
*/
|
|
mode?: string;
|
|
/**
|
|
* Endpoint mode for the service: 'vip' (default) or 'dnsrr'.
|
|
*/
|
|
endpoint_mode?: string;
|
|
/**
|
|
* Number of replicas of the service container to run.
|
|
*/
|
|
replicas?: number | string;
|
|
/**
|
|
* Labels to apply to the service.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Configuration for rolling back a service update.
|
|
*/
|
|
rollback_config?: {
|
|
/**
|
|
* The number of containers to rollback at a time. If set to 0, all containers rollback simultaneously.
|
|
*/
|
|
parallelism?: number | string;
|
|
/**
|
|
* The time to wait between each container group's rollback (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Action to take if a rollback fails: 'continue', 'pause'.
|
|
*/
|
|
failure_action?: string;
|
|
/**
|
|
* Duration to monitor each task for failures after it is created (e.g., '1s', '1m30s').
|
|
*/
|
|
monitor?: string;
|
|
/**
|
|
* Failure rate to tolerate during a rollback.
|
|
*/
|
|
max_failure_ratio?: number | string;
|
|
/**
|
|
* Order of operations during rollbacks: 'stop-first' (default) or 'start-first'.
|
|
*/
|
|
order?: "start-first" | "stop-first";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Configuration for updating a service.
|
|
*/
|
|
update_config?: {
|
|
/**
|
|
* The number of containers to update at a time.
|
|
*/
|
|
parallelism?: number | string;
|
|
/**
|
|
* The time to wait between updating a group of containers (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Action to take if an update fails: 'continue', 'pause', 'rollback'.
|
|
*/
|
|
failure_action?: string;
|
|
/**
|
|
* Duration to monitor each updated task for failures after it is created (e.g., '1s', '1m30s').
|
|
*/
|
|
monitor?: string;
|
|
/**
|
|
* Failure rate to tolerate during an update (0 to 1).
|
|
*/
|
|
max_failure_ratio?: number | string;
|
|
/**
|
|
* Order of operations during updates: 'stop-first' (default) or 'start-first'.
|
|
*/
|
|
order?: "start-first" | "stop-first";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Resource constraints and reservations for the service.
|
|
*/
|
|
resources?: {
|
|
/**
|
|
* Resource limits for the service containers.
|
|
*/
|
|
limits?: {
|
|
/**
|
|
* Limit for how much of the available CPU resources, as number of cores, a container can use.
|
|
*/
|
|
cpus?: number | string;
|
|
/**
|
|
* Limit on the amount of memory a container can allocate (e.g., '1g', '1024m').
|
|
*/
|
|
memory?: string;
|
|
/**
|
|
* Maximum number of PIDs available to the container.
|
|
*/
|
|
pids?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Resource reservations for the service containers.
|
|
*/
|
|
reservations?: {
|
|
/**
|
|
* Reservation for how much of the available CPU resources, as number of cores, a container can use.
|
|
*/
|
|
cpus?: number | string;
|
|
/**
|
|
* Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m').
|
|
*/
|
|
memory?: string;
|
|
generic_resources?: GenericResources;
|
|
devices?: Devices;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Restart policy for the service containers.
|
|
*/
|
|
restart_policy?: {
|
|
/**
|
|
* Condition for restarting the container: 'none', 'on-failure', 'any'.
|
|
*/
|
|
condition?: string;
|
|
/**
|
|
* Delay between restart attempts (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Maximum number of restart attempts before giving up.
|
|
*/
|
|
max_attempts?: number | string;
|
|
/**
|
|
* Time window used to evaluate the restart policy (e.g., '1s', '1m30s').
|
|
*/
|
|
window?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Constraints and preferences for the platform to select a physical node to run service containers
|
|
*/
|
|
placement?: {
|
|
/**
|
|
* Placement constraints for the service (e.g., 'node.role==manager').
|
|
*/
|
|
constraints?: string[];
|
|
/**
|
|
* Placement preferences for the service.
|
|
*/
|
|
preferences?: {
|
|
/**
|
|
* Spread tasks evenly across values of the specified node label.
|
|
*/
|
|
spread?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* Maximum number of replicas of the service.
|
|
*/
|
|
max_replicas_per_node?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} & Deployment1;
|
|
/**
|
|
* User-defined resources to reserve.
|
|
*/
|
|
export type GenericResources = {
|
|
/**
|
|
* Specification for discrete (countable) resources.
|
|
*/
|
|
discrete_resource_spec?: {
|
|
/**
|
|
* Type of resource (e.g., 'GPU', 'FPGA', 'SSD').
|
|
*/
|
|
kind?: string;
|
|
/**
|
|
* Number of resources of this kind to reserve.
|
|
*/
|
|
value?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* List of capabilities the device needs to have (e.g., 'gpu', 'compute', 'utility').
|
|
*/
|
|
export type ListOfStrings1 = string[];
|
|
/**
|
|
* List of specific device IDs to reserve.
|
|
*/
|
|
export type ListOfStrings2 = string[];
|
|
/**
|
|
* Device reservations for the container.
|
|
*/
|
|
export type Devices = {
|
|
capabilities: ListOfStrings1;
|
|
/**
|
|
* Number of devices of this type to reserve.
|
|
*/
|
|
count?: string | number;
|
|
device_ids?: ListOfStrings2;
|
|
/**
|
|
* Device driver to use (e.g., 'nvidia').
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Driver-specific options for the device.
|
|
*/
|
|
options?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
export type Deployment1 = {
|
|
/**
|
|
* Deployment mode for the service: 'replicated' (default) or 'global'.
|
|
*/
|
|
mode?: string;
|
|
/**
|
|
* Endpoint mode for the service: 'vip' (default) or 'dnsrr'.
|
|
*/
|
|
endpoint_mode?: string;
|
|
/**
|
|
* Number of replicas of the service container to run.
|
|
*/
|
|
replicas?: number | string;
|
|
/**
|
|
* Labels to apply to the service.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Configuration for rolling back a service update.
|
|
*/
|
|
rollback_config?: {
|
|
/**
|
|
* The number of containers to rollback at a time. If set to 0, all containers rollback simultaneously.
|
|
*/
|
|
parallelism?: number | string;
|
|
/**
|
|
* The time to wait between each container group's rollback (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Action to take if a rollback fails: 'continue', 'pause'.
|
|
*/
|
|
failure_action?: string;
|
|
/**
|
|
* Duration to monitor each task for failures after it is created (e.g., '1s', '1m30s').
|
|
*/
|
|
monitor?: string;
|
|
/**
|
|
* Failure rate to tolerate during a rollback.
|
|
*/
|
|
max_failure_ratio?: number | string;
|
|
/**
|
|
* Order of operations during rollbacks: 'stop-first' (default) or 'start-first'.
|
|
*/
|
|
order?: "start-first" | "stop-first";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Configuration for updating a service.
|
|
*/
|
|
update_config?: {
|
|
/**
|
|
* The number of containers to update at a time.
|
|
*/
|
|
parallelism?: number | string;
|
|
/**
|
|
* The time to wait between updating a group of containers (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Action to take if an update fails: 'continue', 'pause', 'rollback'.
|
|
*/
|
|
failure_action?: string;
|
|
/**
|
|
* Duration to monitor each updated task for failures after it is created (e.g., '1s', '1m30s').
|
|
*/
|
|
monitor?: string;
|
|
/**
|
|
* Failure rate to tolerate during an update (0 to 1).
|
|
*/
|
|
max_failure_ratio?: number | string;
|
|
/**
|
|
* Order of operations during updates: 'stop-first' (default) or 'start-first'.
|
|
*/
|
|
order?: "start-first" | "stop-first";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Resource constraints and reservations for the service.
|
|
*/
|
|
resources?: {
|
|
/**
|
|
* Resource limits for the service containers.
|
|
*/
|
|
limits?: {
|
|
/**
|
|
* Limit for how much of the available CPU resources, as number of cores, a container can use.
|
|
*/
|
|
cpus?: number | string;
|
|
/**
|
|
* Limit on the amount of memory a container can allocate (e.g., '1g', '1024m').
|
|
*/
|
|
memory?: string;
|
|
/**
|
|
* Maximum number of PIDs available to the container.
|
|
*/
|
|
pids?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Resource reservations for the service containers.
|
|
*/
|
|
reservations?: {
|
|
/**
|
|
* Reservation for how much of the available CPU resources, as number of cores, a container can use.
|
|
*/
|
|
cpus?: number | string;
|
|
/**
|
|
* Reservation on the amount of memory a container can allocate (e.g., '1g', '1024m').
|
|
*/
|
|
memory?: string;
|
|
generic_resources?: GenericResources;
|
|
devices?: Devices;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Restart policy for the service containers.
|
|
*/
|
|
restart_policy?: {
|
|
/**
|
|
* Condition for restarting the container: 'none', 'on-failure', 'any'.
|
|
*/
|
|
condition?: string;
|
|
/**
|
|
* Delay between restart attempts (e.g., '1s', '1m30s').
|
|
*/
|
|
delay?: string;
|
|
/**
|
|
* Maximum number of restart attempts before giving up.
|
|
*/
|
|
max_attempts?: number | string;
|
|
/**
|
|
* Time window used to evaluate the restart policy (e.g., '1s', '1m30s').
|
|
*/
|
|
window?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Constraints and preferences for the platform to select a physical node to run service containers
|
|
*/
|
|
placement?: {
|
|
/**
|
|
* Placement constraints for the service (e.g., 'node.role==manager').
|
|
*/
|
|
constraints?: string[];
|
|
/**
|
|
* Placement preferences for the service.
|
|
*/
|
|
preferences?: {
|
|
/**
|
|
* Spread tasks evenly across values of the specified node label.
|
|
*/
|
|
spread?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* Maximum number of replicas of the service.
|
|
*/
|
|
max_replicas_per_node?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
export type ListOrDict =
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Secrets to expose to the build. These are accessible at build-time.
|
|
*/
|
|
export type ServiceConfigOrSecret = (
|
|
| string
|
|
| {
|
|
/**
|
|
* Name of the config or secret as defined in the top-level configs or secrets section.
|
|
*/
|
|
source?: string;
|
|
/**
|
|
* Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* UID of the file in the container. Default is 0 (root).
|
|
*/
|
|
uid?: string;
|
|
/**
|
|
* GID of the file in the container. Default is 0 (root).
|
|
*/
|
|
gid?: string;
|
|
/**
|
|
* File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
|
|
*/
|
|
mode?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* Grant access to Configs on a per-service basis.
|
|
*/
|
|
export type ServiceConfigOrSecret1 = (
|
|
| string
|
|
| {
|
|
/**
|
|
* Name of the config or secret as defined in the top-level configs or secrets section.
|
|
*/
|
|
source?: string;
|
|
/**
|
|
* Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* UID of the file in the container. Default is 0 (root).
|
|
*/
|
|
uid?: string;
|
|
/**
|
|
* GID of the file in the container. Default is 0 (root).
|
|
*/
|
|
gid?: string;
|
|
/**
|
|
* File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
|
|
*/
|
|
mode?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings3 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings4 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings5 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings6 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings7 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings8 = string[];
|
|
/**
|
|
* A list of unique string values.
|
|
*/
|
|
export type ListOfStrings9 = string[];
|
|
/**
|
|
* Grant access to Secrets on a per-service basis.
|
|
*/
|
|
export type ServiceConfigOrSecret2 = (
|
|
| string
|
|
| {
|
|
/**
|
|
* Name of the config or secret as defined in the top-level configs or secrets section.
|
|
*/
|
|
source?: string;
|
|
/**
|
|
* Path in the container where the config or secret will be mounted. Defaults to /<source> for configs and /run/secrets/<source> for secrets.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* UID of the file in the container. Default is 0 (root).
|
|
*/
|
|
uid?: string;
|
|
/**
|
|
* GID of the file in the container. Default is 0 (root).
|
|
*/
|
|
gid?: string;
|
|
/**
|
|
* File permission mode inside the container, in octal. Default is 0444 for configs and 0400 for secrets.
|
|
*/
|
|
mode?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* Network configuration for the Compose application.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export type Network = {
|
|
/**
|
|
* Custom name for this network.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Specify which driver should be used for this network. Default is 'bridge'.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Specify driver-specific options defined as key/value pairs.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Custom IP Address Management configuration for this network.
|
|
*/
|
|
ipam?: {
|
|
/**
|
|
* Custom IPAM driver, instead of the default.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* List of IPAM configuration blocks.
|
|
*/
|
|
config?: {
|
|
/**
|
|
* Subnet in CIDR format that represents a network segment.
|
|
*/
|
|
subnet?: string;
|
|
/**
|
|
* Range of IPs from which to allocate container IPs.
|
|
*/
|
|
ip_range?: string;
|
|
/**
|
|
* IPv4 or IPv6 gateway for the subnet.
|
|
*/
|
|
gateway?: string;
|
|
/**
|
|
* Auxiliary IPv4 or IPv6 addresses used by Network driver.
|
|
*/
|
|
aux_addresses?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* Driver-specific options for the IPAM driver.
|
|
*/
|
|
options?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Specifies that this network already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* @deprecated
|
|
* Specifies the name of the external network. Deprecated: use the 'name' property instead.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Create an externally isolated network.
|
|
*/
|
|
internal?: boolean | string;
|
|
/**
|
|
* Enable IPv4 networking.
|
|
*/
|
|
enable_ipv4?: boolean | string;
|
|
/**
|
|
* Enable IPv6 networking.
|
|
*/
|
|
enable_ipv6?: boolean | string;
|
|
/**
|
|
* If true, standalone containers can attach to this network.
|
|
*/
|
|
attachable?: boolean | string;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} & Network1;
|
|
export type Network1 = {
|
|
/**
|
|
* Custom name for this network.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Specify which driver should be used for this network. Default is 'bridge'.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Specify driver-specific options defined as key/value pairs.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Custom IP Address Management configuration for this network.
|
|
*/
|
|
ipam?: {
|
|
/**
|
|
* Custom IPAM driver, instead of the default.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* List of IPAM configuration blocks.
|
|
*/
|
|
config?: {
|
|
/**
|
|
* Subnet in CIDR format that represents a network segment.
|
|
*/
|
|
subnet?: string;
|
|
/**
|
|
* Range of IPs from which to allocate container IPs.
|
|
*/
|
|
ip_range?: string;
|
|
/**
|
|
* IPv4 or IPv6 gateway for the subnet.
|
|
*/
|
|
gateway?: string;
|
|
/**
|
|
* Auxiliary IPv4 or IPv6 addresses used by Network driver.
|
|
*/
|
|
aux_addresses?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* Driver-specific options for the IPAM driver.
|
|
*/
|
|
options?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Specifies that this network already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* @deprecated
|
|
* Specifies the name of the external network. Deprecated: use the 'name' property instead.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Create an externally isolated network.
|
|
*/
|
|
internal?: boolean | string;
|
|
/**
|
|
* Enable IPv4 networking.
|
|
*/
|
|
enable_ipv4?: boolean | string;
|
|
/**
|
|
* Enable IPv6 networking.
|
|
*/
|
|
enable_ipv6?: boolean | string;
|
|
/**
|
|
* If true, standalone containers can attach to this network.
|
|
*/
|
|
attachable?: boolean | string;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
/**
|
|
* Volume configuration for the Compose application.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export type Volume = {
|
|
/**
|
|
* Custom name for this volume.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Specify which volume driver should be used for this volume.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Specify driver-specific options.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Specifies that this volume already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* @deprecated
|
|
* Specifies the name of the external volume. Deprecated: use the 'name' property instead.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} & Volume1;
|
|
export type Volume1 = {
|
|
/**
|
|
* Custom name for this volume.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Specify which volume driver should be used for this volume.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Specify driver-specific options.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Specifies that this volume already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* @deprecated
|
|
* Specifies the name of the external volume. Deprecated: use the 'name' property instead.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
|
|
/**
|
|
* The Compose file is a YAML file defining a multi-containers based application.
|
|
*/
|
|
export interface ComposeSpecification {
|
|
/**
|
|
* @deprecated
|
|
* declared for backward compatibility, ignored. Please remove it.
|
|
*/
|
|
version?: string;
|
|
/**
|
|
* define the Compose project name, until user defines one explicitly.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* compose sub-projects to be included.
|
|
*/
|
|
include?: Include[];
|
|
/**
|
|
* The services that will be used by your application.
|
|
*/
|
|
services?: {
|
|
[k: string]: Service;
|
|
};
|
|
/**
|
|
* Language models that will be used by your application.
|
|
*/
|
|
models?: {
|
|
[k: string]: Model;
|
|
};
|
|
/**
|
|
* Networks that are shared among multiple services.
|
|
*/
|
|
networks?: {
|
|
[k: string]: Network;
|
|
};
|
|
/**
|
|
* Named volumes that are shared among multiple services.
|
|
*/
|
|
volumes?: {
|
|
[k: string]: Volume;
|
|
};
|
|
/**
|
|
* Secrets that are shared among multiple services.
|
|
*/
|
|
secrets?: {
|
|
[k: string]: Secret;
|
|
};
|
|
/**
|
|
* Configurations that are shared among multiple services.
|
|
*/
|
|
configs?: {
|
|
[k: string]: Config;
|
|
};
|
|
/**
|
|
* This interface was referenced by `ComposeSpecification`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Configuration for a service.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export interface Service {
|
|
develop?: Development;
|
|
deploy?: Deployment;
|
|
annotations?: ListOrDict;
|
|
attach?: boolean | string;
|
|
/**
|
|
* Configuration options for building the service's image.
|
|
*/
|
|
build?:
|
|
| string
|
|
| {
|
|
/**
|
|
* Path to the build context. Can be a relative path or a URL.
|
|
*/
|
|
context?: string;
|
|
/**
|
|
* Name of the Dockerfile to use for building the image.
|
|
*/
|
|
dockerfile?: string;
|
|
/**
|
|
* Inline Dockerfile content to use instead of a Dockerfile from the build context.
|
|
*/
|
|
dockerfile_inline?: string;
|
|
/**
|
|
* List of extra privileged entitlements to grant to the build process.
|
|
*/
|
|
entitlements?: string[];
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
args?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
ssh?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* List of sources the image builder should use for cache resolution
|
|
*/
|
|
cache_from?: string[];
|
|
/**
|
|
* Cache destinations for the build cache.
|
|
*/
|
|
cache_to?: string[];
|
|
/**
|
|
* Do not use cache when building the image.
|
|
*/
|
|
no_cache?: boolean | string;
|
|
/**
|
|
* Do not use build cache for the specified stages.
|
|
*/
|
|
no_cache_filter?: string | ListOfStrings;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
additional_contexts?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Network mode to use for the build. Options include 'default', 'none', 'host', or a network name.
|
|
*/
|
|
network?: string;
|
|
/**
|
|
* Add a provenance attestation
|
|
*/
|
|
provenance?: string | boolean;
|
|
/**
|
|
* Add a SBOM attestation
|
|
*/
|
|
sbom?: string | boolean;
|
|
/**
|
|
* Always attempt to pull a newer version of the image.
|
|
*/
|
|
pull?: boolean | string;
|
|
/**
|
|
* Build stage to target in a multi-stage Dockerfile.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* Size of /dev/shm for the build container. A string value can use suffix like '2g' for 2 gigabytes.
|
|
*/
|
|
shm_size?: number | string;
|
|
/**
|
|
* Add hostname mappings for the build container.
|
|
*/
|
|
extra_hosts?:
|
|
| {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | string[];
|
|
}
|
|
| string[];
|
|
/**
|
|
* Container isolation technology to use for the build process.
|
|
*/
|
|
isolation?: string;
|
|
/**
|
|
* Give extended privileges to the build container.
|
|
*/
|
|
privileged?: boolean | string;
|
|
secrets?: ServiceConfigOrSecret;
|
|
/**
|
|
* Additional tags to apply to the built image.
|
|
*/
|
|
tags?: string[];
|
|
ulimits?: Ulimits;
|
|
/**
|
|
* Platforms to build for, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'.
|
|
*/
|
|
platforms?: string[];
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Block IO configuration for the service.
|
|
*/
|
|
blkio_config?: {
|
|
/**
|
|
* Limit read rate (bytes per second) from a device.
|
|
*/
|
|
device_read_bps?: BlkioLimit[];
|
|
/**
|
|
* Limit read rate (IO per second) from a device.
|
|
*/
|
|
device_read_iops?: BlkioLimit[];
|
|
/**
|
|
* Limit write rate (bytes per second) to a device.
|
|
*/
|
|
device_write_bps?: BlkioLimit[];
|
|
/**
|
|
* Limit write rate (IO per second) to a device.
|
|
*/
|
|
device_write_iops?: BlkioLimit[];
|
|
/**
|
|
* Block IO weight (relative weight) for the service, between 10 and 1000.
|
|
*/
|
|
weight?: number | string;
|
|
/**
|
|
* Block IO weight (relative weight) for specific devices.
|
|
*/
|
|
weight_device?: BlkioWeight[];
|
|
};
|
|
/**
|
|
* Add Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.
|
|
*/
|
|
cap_add?: string[];
|
|
/**
|
|
* Drop Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.
|
|
*/
|
|
cap_drop?: string[];
|
|
/**
|
|
* Specify the cgroup namespace to join. Use 'host' to use the host's cgroup namespace, or 'private' to use a private cgroup namespace.
|
|
*/
|
|
cgroup?: "host" | "private";
|
|
/**
|
|
* Specify an optional parent cgroup for the container.
|
|
*/
|
|
cgroup_parent?: string;
|
|
/**
|
|
* Override the default command declared by the container image, for example 'CMD' in Dockerfile.
|
|
*/
|
|
command?: null | string | string[];
|
|
configs?: ServiceConfigOrSecret1;
|
|
/**
|
|
* Specify a custom container name, rather than a generated default name.
|
|
*/
|
|
container_name?: string;
|
|
/**
|
|
* Number of usable CPUs.
|
|
*/
|
|
cpu_count?: string | number;
|
|
/**
|
|
* Percentage of CPU resources to use.
|
|
*/
|
|
cpu_percent?: string | number;
|
|
/**
|
|
* CPU shares (relative weight) for the container.
|
|
*/
|
|
cpu_shares?: number | string;
|
|
/**
|
|
* Limit the CPU CFS (Completely Fair Scheduler) quota.
|
|
*/
|
|
cpu_quota?: number | string;
|
|
/**
|
|
* Limit the CPU CFS (Completely Fair Scheduler) period.
|
|
*/
|
|
cpu_period?: number | string;
|
|
/**
|
|
* Limit the CPU real-time period in microseconds or a duration.
|
|
*/
|
|
cpu_rt_period?: number | string;
|
|
/**
|
|
* Limit the CPU real-time runtime in microseconds or a duration.
|
|
*/
|
|
cpu_rt_runtime?: number | string;
|
|
/**
|
|
* Number of CPUs to use. A floating-point value is supported to request partial CPUs.
|
|
*/
|
|
cpus?: number | string;
|
|
/**
|
|
* CPUs in which to allow execution (0-3, 0,1).
|
|
*/
|
|
cpuset?: string;
|
|
/**
|
|
* Configure the credential spec for managed service account.
|
|
*/
|
|
credential_spec?: {
|
|
/**
|
|
* The name of the credential spec Config to use.
|
|
*/
|
|
config?: string;
|
|
/**
|
|
* Path to a credential spec file.
|
|
*/
|
|
file?: string;
|
|
/**
|
|
* Path to a credential spec in the Windows registry.
|
|
*/
|
|
registry?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Express dependency between services. Service dependencies cause services to be started in dependency order. The dependent service will wait for the dependency to be ready before starting.
|
|
*/
|
|
depends_on?:
|
|
| ListOfStrings3
|
|
| {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
[k: string]: {
|
|
/**
|
|
* Whether to restart dependent services when this service is restarted.
|
|
*/
|
|
restart?: boolean | string;
|
|
/**
|
|
* Whether the dependency is required for the dependent service to start.
|
|
*/
|
|
required?: boolean;
|
|
/**
|
|
* Condition to wait for. 'service_started' waits until the service has started, 'service_healthy' waits until the service is healthy (as defined by its healthcheck), 'service_completed_successfully' waits until the service has completed successfully.
|
|
*/
|
|
condition: "service_started" | "service_healthy" | "service_completed_successfully";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
};
|
|
device_cgroup_rules?: ListOfStrings4;
|
|
/**
|
|
* List of device mappings for the container.
|
|
*/
|
|
devices?: (
|
|
| string
|
|
| {
|
|
/**
|
|
* Path on the host to the device.
|
|
*/
|
|
source: string;
|
|
/**
|
|
* Path in the container where the device will be mapped.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* Cgroup permissions for the device (rwm).
|
|
*/
|
|
permissions?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* Custom DNS servers to set for the service container.
|
|
*/
|
|
dns?: string | ListOfStrings;
|
|
/**
|
|
* Custom DNS options to be passed to the container's DNS resolver.
|
|
*/
|
|
dns_opt?: string[];
|
|
/**
|
|
* Custom DNS search domains to set on the service container.
|
|
*/
|
|
dns_search?: string | ListOfStrings;
|
|
/**
|
|
* Custom domain name to use for the service container.
|
|
*/
|
|
domainname?: string;
|
|
/**
|
|
* Override the default entrypoint declared by the container image, for example 'ENTRYPOINT' in Dockerfile.
|
|
*/
|
|
entrypoint?: null | string | string[];
|
|
/**
|
|
* Add environment variables from a file or multiple files. Can be a single file path or a list of file paths.
|
|
*/
|
|
env_file?:
|
|
| string
|
|
| (
|
|
| string
|
|
| {
|
|
/**
|
|
* Path to the environment file.
|
|
*/
|
|
path: string;
|
|
/**
|
|
* Format attribute lets you to use an alternative file formats for env_file. When not set, env_file is parsed according to Compose rules.
|
|
*/
|
|
format?: string;
|
|
/**
|
|
* Whether the file is required. If true and the file doesn't exist, an error will be raised.
|
|
*/
|
|
required?: boolean | string;
|
|
}
|
|
)[];
|
|
/**
|
|
* Add metadata to containers using files containing Docker labels.
|
|
*/
|
|
label_file?: string | string[];
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
environment?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Expose ports without publishing them to the host machine - they'll only be accessible to linked services.
|
|
*/
|
|
expose?: (string | number)[];
|
|
/**
|
|
* Extend another service, in the current file or another file.
|
|
*/
|
|
extends?:
|
|
| string
|
|
| {
|
|
/**
|
|
* The name of the service to extend.
|
|
*/
|
|
service: string;
|
|
/**
|
|
* The file path where the service to extend is defined.
|
|
*/
|
|
file?: string;
|
|
};
|
|
/**
|
|
* Specify a service which will not be manage by Compose directly, and delegate its management to an external provider.
|
|
*/
|
|
provider?: {
|
|
/**
|
|
* External component used by Compose to manage setup and teardown lifecycle of the service.
|
|
*/
|
|
type: string;
|
|
/**
|
|
* Provider-specific options.
|
|
*/
|
|
options?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: (string | number | boolean) | (string | number | boolean)[];
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Link to services started outside this Compose application. Specify services as <service_name>:<alias>.
|
|
*/
|
|
external_links?: string[];
|
|
/**
|
|
* Add hostname mappings to the container network interface configuration.
|
|
*/
|
|
extra_hosts?:
|
|
| {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | string[];
|
|
}
|
|
| string[];
|
|
/**
|
|
* Define GPU devices to use. Can be set to 'all' to use all GPUs, or a list of specific GPU devices.
|
|
*/
|
|
gpus?:
|
|
| "all"
|
|
| {
|
|
capabilities?: ListOfStrings5;
|
|
/**
|
|
* Number of GPUs to use.
|
|
*/
|
|
count?: string | number;
|
|
device_ids?: ListOfStrings6;
|
|
/**
|
|
* GPU driver to use (e.g., 'nvidia').
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
options?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
[k: string]: unknown;
|
|
}[];
|
|
/**
|
|
* Add additional groups which user inside the container should be member of.
|
|
*/
|
|
group_add?: (string | number)[];
|
|
healthcheck?: Healthcheck;
|
|
/**
|
|
* Define a custom hostname for the service container.
|
|
*/
|
|
hostname?: string;
|
|
/**
|
|
* Specify the image to start the container from. Can be a repository/tag, a digest, or a local image ID.
|
|
*/
|
|
image?: string;
|
|
/**
|
|
* Run as an init process inside the container that forwards signals and reaps processes.
|
|
*/
|
|
init?: boolean | string;
|
|
/**
|
|
* IPC sharing mode for the service container. Use 'host' to share the host's IPC namespace, 'service:[service_name]' to share with another service, or 'shareable' to allow other services to share this service's IPC namespace.
|
|
*/
|
|
ipc?: string;
|
|
/**
|
|
* Container isolation technology to use. Supported values are platform-specific.
|
|
*/
|
|
isolation?: string;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Link to containers in another service. Either specify both the service name and a link alias (SERVICE:ALIAS), or just the service name.
|
|
*/
|
|
links?: string[];
|
|
/**
|
|
* Logging configuration for the service.
|
|
*/
|
|
logging?: {
|
|
/**
|
|
* Logging driver to use, such as 'json-file', 'syslog', 'journald', etc.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Options for the logging driver.
|
|
*/
|
|
options?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number | null;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Container MAC address to set.
|
|
*/
|
|
mac_address?: string;
|
|
/**
|
|
* Memory limit for the container. A string value can use suffix like '2g' for 2 gigabytes.
|
|
*/
|
|
mem_limit?: number | string;
|
|
/**
|
|
* Memory reservation for the container.
|
|
*/
|
|
mem_reservation?: string | number;
|
|
/**
|
|
* Container memory swappiness as percentage (0 to 100).
|
|
*/
|
|
mem_swappiness?: number | string;
|
|
/**
|
|
* Amount of memory the container is allowed to swap to disk. Set to -1 to enable unlimited swap.
|
|
*/
|
|
memswap_limit?: number | string;
|
|
/**
|
|
* Network mode. Values can be 'bridge', 'host', 'none', 'service:[service name]', or 'container:[container name]'.
|
|
*/
|
|
network_mode?: string;
|
|
/**
|
|
* AI Models to use, referencing entries under the top-level models key.
|
|
*/
|
|
models?:
|
|
| ListOfStrings3
|
|
| {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
[k: string]: {
|
|
/**
|
|
* Environment variable set to AI model endpoint.
|
|
*/
|
|
endpoint_var?: string;
|
|
/**
|
|
* Environment variable set to AI model name.
|
|
*/
|
|
model_var?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
};
|
|
/**
|
|
* Networks to join, referencing entries under the top-level networks key. Can be a list of network names or a mapping of network name to network configuration.
|
|
*/
|
|
networks?:
|
|
| ListOfStrings3
|
|
| {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
[k: string]: {
|
|
aliases?: ListOfStrings7;
|
|
/**
|
|
* Interface network name used to connect to network
|
|
*/
|
|
interface_name?: string;
|
|
/**
|
|
* Specify a static IPv4 address for this service on this network.
|
|
*/
|
|
ipv4_address?: string;
|
|
/**
|
|
* Specify a static IPv6 address for this service on this network.
|
|
*/
|
|
ipv6_address?: string;
|
|
link_local_ips?: ListOfStrings8;
|
|
/**
|
|
* Specify a MAC address for this service on this network.
|
|
*/
|
|
mac_address?: string;
|
|
/**
|
|
* Driver options for this network.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Specify the priority for the network connection.
|
|
*/
|
|
priority?: number;
|
|
/**
|
|
* Specify the gateway priority for the network connection.
|
|
*/
|
|
gw_priority?: number;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
} | null;
|
|
};
|
|
/**
|
|
* Disable OOM Killer for the container.
|
|
*/
|
|
oom_kill_disable?: boolean | string;
|
|
/**
|
|
* Tune host's OOM preferences for the container (accepts -1000 to 1000).
|
|
*/
|
|
oom_score_adj?: string | number;
|
|
/**
|
|
* PID mode for container.
|
|
*/
|
|
pid?: string | null;
|
|
/**
|
|
* Tune a container's PIDs limit. Set to -1 for unlimited PIDs.
|
|
*/
|
|
pids_limit?: number | string;
|
|
/**
|
|
* Target platform to run on, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'.
|
|
*/
|
|
platform?: string;
|
|
/**
|
|
* Expose container ports. Short format ([HOST:]CONTAINER[/PROTOCOL]).
|
|
*/
|
|
ports?: (
|
|
| number
|
|
| string
|
|
| {
|
|
/**
|
|
* A human-readable name for this port mapping.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* The port binding mode, either 'host' for publishing a host port or 'ingress' for load balancing.
|
|
*/
|
|
mode?: string;
|
|
/**
|
|
* The host IP to bind to.
|
|
*/
|
|
host_ip?: string;
|
|
/**
|
|
* The port inside the container.
|
|
*/
|
|
target?: number | string;
|
|
/**
|
|
* The publicly exposed port.
|
|
*/
|
|
published?: string | number;
|
|
/**
|
|
* The port protocol (tcp or udp).
|
|
*/
|
|
protocol?: string;
|
|
/**
|
|
* Application protocol to use with the port (e.g., http, https, mysql).
|
|
*/
|
|
app_protocol?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* Init containers to run to completion before the service container is started. Each step runs in its own ephemeral container, in declared order; a non-zero exit fails the bring-up of the service and its dependents.
|
|
*/
|
|
pre_start?: PreStartHook[];
|
|
/**
|
|
* Commands to run after the container starts. If any command fails, the container stops.
|
|
*/
|
|
post_start?: ServiceHook1[];
|
|
/**
|
|
* Commands to run before the container stops. If any command fails, the container stop is aborted.
|
|
*/
|
|
pre_stop?: ServiceHook1[];
|
|
/**
|
|
* Give extended privileges to the service container.
|
|
*/
|
|
privileged?: boolean | string;
|
|
profiles?: ListOfStrings9;
|
|
/**
|
|
* Policy for pulling images. Options include: 'always', 'never', 'if_not_present', 'missing', 'build', or time-based refresh policies.
|
|
*/
|
|
pull_policy?: string;
|
|
/**
|
|
* Time after which to refresh the image. Used with pull_policy=refresh.
|
|
*/
|
|
pull_refresh_after?: string;
|
|
/**
|
|
* Mount the container's filesystem as read only.
|
|
*/
|
|
read_only?: boolean | string;
|
|
/**
|
|
* Restart policy for the service container. Options include: 'no', 'always', 'on-failure', and 'unless-stopped'.
|
|
*/
|
|
restart?: string;
|
|
/**
|
|
* Runtime to use for this container, e.g., 'runc'.
|
|
*/
|
|
runtime?: string;
|
|
/**
|
|
* Number of containers to deploy for this service.
|
|
*/
|
|
scale?: number | string;
|
|
/**
|
|
* Override the default labeling scheme for each container.
|
|
*/
|
|
security_opt?: string[];
|
|
/**
|
|
* Size of /dev/shm. A string value can use suffix like '2g' for 2 gigabytes.
|
|
*/
|
|
shm_size?: number | string;
|
|
secrets?: ServiceConfigOrSecret2;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
sysctls?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Keep STDIN open even if not attached.
|
|
*/
|
|
stdin_open?: boolean | string;
|
|
/**
|
|
* Time to wait for the container to stop gracefully before sending SIGKILL (e.g., '1s', '1m30s').
|
|
*/
|
|
stop_grace_period?: string;
|
|
/**
|
|
* Signal to stop the container (e.g., 'SIGTERM', 'SIGINT').
|
|
*/
|
|
stop_signal?: string;
|
|
/**
|
|
* Storage driver options for the container.
|
|
*/
|
|
storage_opt?: {
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Mount a temporary filesystem (tmpfs) into the container. Can be a single value or a list.
|
|
*/
|
|
tmpfs?: string | ListOfStrings;
|
|
/**
|
|
* Allocate a pseudo-TTY to service container.
|
|
*/
|
|
tty?: boolean | string;
|
|
ulimits?: Ulimits1;
|
|
/**
|
|
* Bind mount Docker API socket and required auth.
|
|
*/
|
|
use_api_socket?: boolean;
|
|
/**
|
|
* Username or UID to run the container process as.
|
|
*/
|
|
user?: string;
|
|
/**
|
|
* UTS namespace to use. 'host' shares the host's UTS namespace.
|
|
*/
|
|
uts?: string;
|
|
/**
|
|
* User namespace to use. 'host' shares the host's user namespace.
|
|
*/
|
|
userns_mode?: string;
|
|
/**
|
|
* Mount host paths or named volumes accessible to the container. Short syntax (VOLUME:CONTAINER_PATH[:MODE])
|
|
*/
|
|
volumes?: (
|
|
| string
|
|
| {
|
|
/**
|
|
* The mount type: bind for mounting host directories, volume for named volumes, tmpfs for temporary filesystems, cluster for cluster volumes, npipe for named pipes, or image for mounting from an image.
|
|
*/
|
|
type: "bind" | "volume" | "tmpfs" | "cluster" | "npipe" | "image";
|
|
/**
|
|
* The source of the mount, a path on the host for a bind mount, a docker image reference for an image mount, or the name of a volume defined in the top-level volumes key. Not applicable for a tmpfs mount.
|
|
*/
|
|
source?: string;
|
|
/**
|
|
* The path in the container where the volume is mounted.
|
|
*/
|
|
target?: string;
|
|
/**
|
|
* Flag to set the volume as read-only.
|
|
*/
|
|
read_only?: boolean | string;
|
|
/**
|
|
* The consistency requirements for the mount. Available values are platform specific.
|
|
*/
|
|
consistency?: string;
|
|
/**
|
|
* Configuration specific to bind mounts.
|
|
*/
|
|
bind?: {
|
|
/**
|
|
* The propagation mode for the bind mount: 'shared', 'slave', 'private', 'rshared', 'rslave', or 'rprivate'.
|
|
*/
|
|
propagation?: string;
|
|
/**
|
|
* Create the host path if it doesn't exist.
|
|
*/
|
|
create_host_path?: boolean | string;
|
|
/**
|
|
* Recursively mount the source directory.
|
|
*/
|
|
recursive?: "enabled" | "disabled" | "writable" | "readonly";
|
|
/**
|
|
* SELinux relabeling options: 'z' for shared content, 'Z' for private unshared content.
|
|
*/
|
|
selinux?: "z" | "Z";
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Configuration specific to volume mounts.
|
|
*/
|
|
volume?: {
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Flag to disable copying of data from a container when a volume is created.
|
|
*/
|
|
nocopy?: boolean | string;
|
|
/**
|
|
* Path within the volume to mount instead of the volume root.
|
|
*/
|
|
subpath?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Configuration specific to tmpfs mounts.
|
|
*/
|
|
tmpfs?: {
|
|
/**
|
|
* Size of the tmpfs mount in bytes.
|
|
*/
|
|
size?: number | string;
|
|
/**
|
|
* File mode of the tmpfs in octal.
|
|
*/
|
|
mode?: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Configuration specific to image mounts.
|
|
*/
|
|
image?: {
|
|
/**
|
|
* Path within the image to mount instead of the image root.
|
|
*/
|
|
subpath?: string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
)[];
|
|
/**
|
|
* Mount volumes from another service or container. Optionally specify read-only access (ro) or read-write (rw).
|
|
*/
|
|
volumes_from?: string[];
|
|
/**
|
|
* The working directory in which the entrypoint or command will be run
|
|
*/
|
|
working_dir?: string;
|
|
/**
|
|
* This interface was referenced by `Service`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Command to execute when a change is detected and action is sync+exec.
|
|
*/
|
|
export interface ServiceHook {
|
|
/**
|
|
* Command to execute as part of the hook.
|
|
*/
|
|
command: null | string | string[];
|
|
/**
|
|
* User to run the command as.
|
|
*/
|
|
user?: string;
|
|
/**
|
|
* Whether to run the command with extended privileges.
|
|
*/
|
|
privileged?: boolean | string;
|
|
/**
|
|
* Working directory for the command.
|
|
*/
|
|
working_dir?: string;
|
|
/**
|
|
* Environment variables for the command.
|
|
*/
|
|
environment?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `ServiceHook`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `ServiceHook1`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Override the default ulimits for the build container.
|
|
*/
|
|
export interface Ulimits {
|
|
/**
|
|
* This interface was referenced by `Ulimits`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-z]+$".
|
|
*
|
|
* This interface was referenced by `Ulimits1`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-z]+$".
|
|
*/
|
|
[k: string]:
|
|
| (number | string)
|
|
| {
|
|
/**
|
|
* Hard limit for the ulimit type. This is the maximum allowed value.
|
|
*/
|
|
hard: number | string;
|
|
/**
|
|
* Soft limit for the ulimit type. This is the value that's actually enforced.
|
|
*/
|
|
soft: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
}
|
|
/**
|
|
* Block IO limit for a specific device.
|
|
*/
|
|
export interface BlkioLimit {
|
|
/**
|
|
* Path to the device (e.g., '/dev/sda').
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* Rate limit in bytes per second or IO operations per second.
|
|
*/
|
|
rate?: number | string;
|
|
}
|
|
/**
|
|
* Block IO weight for a specific device.
|
|
*/
|
|
export interface BlkioWeight {
|
|
/**
|
|
* Path to the device (e.g., '/dev/sda').
|
|
*/
|
|
path?: string;
|
|
/**
|
|
* Relative weight for the device, between 10 and 1000.
|
|
*/
|
|
weight?: number | string;
|
|
}
|
|
/**
|
|
* Configure a health check for the container to monitor its health status.
|
|
*/
|
|
export interface Healthcheck {
|
|
/**
|
|
* Disable any container-specified healthcheck. Set to true to disable.
|
|
*/
|
|
disable?: boolean | string;
|
|
/**
|
|
* Time between running the check (e.g., '1s', '1m30s'). Default: 30s.
|
|
*/
|
|
interval?: string;
|
|
/**
|
|
* Number of consecutive failures needed to consider the container as unhealthy. Default: 3.
|
|
*/
|
|
retries?: number | string;
|
|
/**
|
|
* The test to perform to check container health. Can be a string or a list. The first item is either NONE, CMD, or CMD-SHELL. If it's CMD, the rest of the command is exec'd. If it's CMD-SHELL, the rest is run in the shell.
|
|
*/
|
|
test?: string | string[];
|
|
/**
|
|
* Maximum time to allow one check to run (e.g., '1s', '1m30s'). Default: 30s.
|
|
*/
|
|
timeout?: string;
|
|
/**
|
|
* Start period for the container to initialize before starting health-retries countdown (e.g., '1s', '1m30s'). Default: 0s.
|
|
*/
|
|
start_period?: string;
|
|
/**
|
|
* Time between running the check during the start period (e.g., '1s', '1m30s'). Default: interval value.
|
|
*/
|
|
start_interval?: string;
|
|
/**
|
|
* This interface was referenced by `Healthcheck`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Configuration for a pre_start init container, run to completion before the service container starts.
|
|
*/
|
|
export interface PreStartHook {
|
|
/**
|
|
* Command to execute. Optional when the chosen image's entrypoint already runs the intended command.
|
|
*/
|
|
command?: null | string | string[];
|
|
/**
|
|
* Image used for the ephemeral container. If omitted, the parent service's image is used.
|
|
*/
|
|
image?: string;
|
|
/**
|
|
* User to run the command as. Defaults to the user declared in image (or to the service's user when image is omitted).
|
|
*/
|
|
user?: string;
|
|
/**
|
|
* Whether to run the command with extended privileges.
|
|
*/
|
|
privileged?: boolean | string;
|
|
/**
|
|
* Working directory for the command. Defaults to the service's working directory.
|
|
*/
|
|
working_dir?: string;
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
environment?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Whether the hook runs once per service replica (true), or once for the service as a whole before any replica starts (false, the default).
|
|
*/
|
|
per_replica?: boolean | string;
|
|
/**
|
|
* This interface was referenced by `PreStartHook`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Configuration for service lifecycle hooks, which are commands executed at specific points in a container's lifecycle.
|
|
*/
|
|
export interface ServiceHook1 {
|
|
/**
|
|
* Command to execute as part of the hook.
|
|
*/
|
|
command: null | string | string[];
|
|
/**
|
|
* User to run the command as.
|
|
*/
|
|
user?: string;
|
|
/**
|
|
* Whether to run the command with extended privileges.
|
|
*/
|
|
privileged?: boolean | string;
|
|
/**
|
|
* Working directory for the command.
|
|
*/
|
|
working_dir?: string;
|
|
/**
|
|
* Environment variables for the command.
|
|
*/
|
|
environment?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* This interface was referenced by `ServiceHook`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*
|
|
* This interface was referenced by `ServiceHook1`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Override the default ulimits for a container.
|
|
*/
|
|
export interface Ulimits1 {
|
|
/**
|
|
* This interface was referenced by `Ulimits`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-z]+$".
|
|
*
|
|
* This interface was referenced by `Ulimits1`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-z]+$".
|
|
*/
|
|
[k: string]:
|
|
| (number | string)
|
|
| {
|
|
/**
|
|
* Hard limit for the ulimit type. This is the maximum allowed value.
|
|
*/
|
|
hard: number | string;
|
|
/**
|
|
* Soft limit for the ulimit type. This is the value that's actually enforced.
|
|
*/
|
|
soft: number | string;
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
};
|
|
}
|
|
/**
|
|
* Language Model for the Compose application.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export interface Model {
|
|
/**
|
|
* Custom name for this model.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Language Model to run.
|
|
*/
|
|
model: string;
|
|
context_size?: number;
|
|
/**
|
|
* Raw runtime flags to pass to the inference engine.
|
|
*/
|
|
runtime_flags?: string[];
|
|
/**
|
|
* This interface was referenced by `Model`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Secret configuration for the Compose application.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export interface Secret {
|
|
/**
|
|
* Custom name for this secret.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Name of an environment variable from which to get the secret value.
|
|
*/
|
|
environment?: string;
|
|
/**
|
|
* Path to a file containing the secret value.
|
|
*/
|
|
file?: string;
|
|
/**
|
|
* Specifies that this secret already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* Specifies the name of the external secret.
|
|
*/
|
|
name?: string;
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Specify which secret driver should be used for this secret.
|
|
*/
|
|
driver?: string;
|
|
/**
|
|
* Specify driver-specific options.
|
|
*/
|
|
driver_opts?: {
|
|
/**
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^.+$".
|
|
*/
|
|
[k: string]: string | number;
|
|
};
|
|
/**
|
|
* Driver to use for templating the secret's value.
|
|
*/
|
|
template_driver?: string;
|
|
/**
|
|
* This interface was referenced by `Secret`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|
|
/**
|
|
* Config configuration for the Compose application.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` "^[a-zA-Z0-9._-]+$".
|
|
*/
|
|
export interface Config {
|
|
/**
|
|
* Custom name for this config.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Inline content of the config.
|
|
*/
|
|
content?: string;
|
|
/**
|
|
* Name of an environment variable from which to get the config value.
|
|
*/
|
|
environment?: string;
|
|
/**
|
|
* Path to a file containing the config value.
|
|
*/
|
|
file?: string;
|
|
/**
|
|
* Specifies that this config already exists and was created outside of Compose.
|
|
*/
|
|
external?:
|
|
| boolean
|
|
| string
|
|
| {
|
|
/**
|
|
* @deprecated
|
|
* Specifies the name of the external config. Deprecated: use the 'name' property instead.
|
|
*/
|
|
name?: string;
|
|
[k: string]: unknown;
|
|
};
|
|
/**
|
|
* Either a dictionary mapping keys to values, or a list of strings.
|
|
*/
|
|
labels?:
|
|
| {
|
|
/**
|
|
* Value for the key, which can be a string, number, boolean, or null.
|
|
*
|
|
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
* via the `patternProperty` ".+".
|
|
*/
|
|
[k: string]: string | number | boolean | null;
|
|
}
|
|
| string[];
|
|
/**
|
|
* Driver to use for templating the config's value.
|
|
*/
|
|
template_driver?: string;
|
|
/**
|
|
* This interface was referenced by `Config`'s JSON-Schema definition
|
|
* via the `patternProperty` "^x-".
|
|
*/
|
|
[k: string]: unknown;
|
|
}
|