Discover modules > cue.dev/x/dockercompose
v0.2.0
#Schema: ¶

Compose Specification

The Compose file is a YAML file defining a multi-containers based application.

version?: string ¶

declared for backward compatibility, ignored. Please remove it.

name?: string ¶

define the Compose project name, until user defines one explicitly.

include?: [...#include] ¶

compose sub-projects to be included.

services?: close({[=~"^[a-zA-Z0-9._-]+$"]: #service}) ¶

The services that will be used by your application.

models?: {[=~"^[a-zA-Z0-9._-]+$"]: #model} ... ¶

Language models that will be used by your application.

networks?: {[=~"^[a-zA-Z0-9._-]+$"]: #network} ... ¶

Networks that are shared among multiple services.

volumes?: close({[=~"^[a-zA-Z0-9._-]+$"]: #volume}) ¶

Named volumes that are shared among multiple services.

secrets?: close({[=~"^[a-zA-Z0-9._-]+$"]: #secret}) ¶

Secrets that are shared among multiple services.

configs?: close({[=~"^[a-zA-Z0-9._-]+$"]: #config}) ¶

Configurations that are shared among multiple services.

#blkio_limit: ¶

Block IO limit for a specific device.

path?: string ¶

Path to the device (e.g., '/dev/sda').

rate?: int | string ¶

Rate limit in bytes per second or IO operations per second.

#blkio_weight: ¶

Block IO weight for a specific device.

path?: string ¶

Path to the device (e.g., '/dev/sda').

weight?: int | string ¶

Relative weight for the device, between 10 and 1000.

#command: matchN(1, [null, string, [...string]]) ¶

Command to run in the container, which can be specified as a string (shell form) or array (exec form).

#config: ¶

Config configuration for the Compose application.

name?: string ¶

Custom name for this config.

content?: string ¶

Inline content of the config.

environment?: string ¶

Name of an environment variable from which to get the config value.

file?: string ¶

Path to a file containing the config value.

external?: bool | string | { name?: string @deprecated() ... } ¶

Specifies that this config already exists and was created outside of Compose.

labels?: #list_or_dict ¶

Add metadata to the config using labels.

template_driver?: string ¶

Driver to use for templating the config's value.

#deployment:
click to see definition
null | close({
	{
		[=~"^x-" &
			!~"^(mode|endpoint_mode|replicas|labels|rollback_config|update_config|resources|restart_policy|placement)$"]:
				_
	}
	mode?:          string
	endpoint_mode?: string
	replicas?:      int | string
	labels?:        #list_or_dict
	rollback_config?: close({
		{[=~"^x-" & !~"^(parallelism|delay|failure_action|monitor|max_failure_ratio|order)$"]: _}
		parallelism?:       int | string
		delay?:             string
		failure_action?:    string
		monitor?:           string
		max_failure_ratio?: number | string
		order?:             "start-first" | "stop-first"
	})
	update_config?: close({
		{[=~"^x-" & !~"^(parallelism|delay|failure_action|monitor|max_failure_ratio|order)$"]: _}
		parallelism?:       int | string
		delay?:             string
		failure_action?:    string
		monitor?:           string
		max_failure_ratio?: number | string
		order?:             "start-first" | "stop-first"
	})
	resources?: close({
		{[=~"^x-" & !~"^(limits|reservations)$"]: _}
		limits?: close({
			{[=~"^x-" & !~"^(cpus|memory|pids)$"]: _}
			cpus?:   number | string
			memory?: string
			pids?:   int | string
		})
		reservations?: close({
			{[=~"^x-" & !~"^(cpus|memory|generic_resources|devices)$"]: _}
			cpus?:              number | string
			memory?:            string
			generic_resources?: #generic_resources
			devices?:           #devices
		})
	})
	restart_policy?: close({
		{[=~"^x-" & !~"^(condition|delay|max_attempts|window)$"]: _}
		condition?:    string
		delay?:        string
		max_attempts?: int | string
		window?:       string
	})
	placement?: close({
		{[=~"^x-" & !~"^(constraints|preferences|max_replicas_per_node)$"]: _}
		constraints?: [...string]
		preferences?: [...close({
			{[=~"^x-" & !~"^(spread)$"]: _}
			spread?: string
		})]
		max_replicas_per_node?: int | string
	})
})
¶

Deployment configuration for the service.

#development:
click to see definition
null | close({
	{[=~"^x-" & !~"^(watch)$"]: _}
	watch?: [...close({
		{[=~"^x-" & !~"^(ignore|include|path|action|target|exec|initial_sync)$"]: _}
		ignore?:       #string_or_list
		include?:      #string_or_list
		path!:         string
		action!:       "rebuild" | "sync" | "restart" | "sync+restart" | "sync+exec"
		target?:       string
		exec?:         #service_hook
		initial_sync?: bool
	})]
})
¶

Development configuration for the service, used for development workflows.

#devices:
click to see definition
[...close({
	{[=~"^x-" & !~"^(capabilities|count|device_ids|driver|options)$"]: _}
	capabilities!: #list_of_strings
	count?:        int | string
	device_ids?:   #list_of_strings
	driver?:       string
	options?:      #list_or_dict
})]
¶

Device reservations for containers, allowing services to access specific hardware devices.

#env_file:
click to see definition
matchN(
	1,
	[
		string,
		[...matchN(
			1,
			[
				string,
				close({
					path!:     string
					format?:   string
					required?: bool | string
				})
			]
		)]
	]
)
¶
#extra_hosts: matchN(1, [close({[=~".+"]: matchN(1, [string, [...string]])}), list.UniqueItems() & [...string]]) ¶

Additional hostnames to be defined in the container's /etc/hosts file.

#generic_resources:
click to see definition
[...close({
	{[=~"^x-" & !~"^(discrete_resource_spec)$"]: _}
	discrete_resource_spec?: close({
		{[=~"^x-" & !~"^(kind|value)$"]: _}
		kind?:  string
		value?: number | string
	})
})]
¶

User-defined resources for services, allowing services to reserve specialized hardware resources.

#gpus:
click to see definition
matchN(1, [
	"all",
	[...{
		capabilities?: #list_of_strings
		count?:        int | string
		device_ids?:   #list_of_strings
		driver?:       string
		options?:      #list_or_dict
		...
	}]
])
¶
#healthcheck: ¶

Configuration options to determine whether the container is healthy.

disable?: bool | string ¶

Disable any container-specified healthcheck. Set to true to disable.

interval?: string ¶

Time between running the check (e.g., '1s', '1m30s'). Default: 30s.

retries?: number | string ¶

Number of consecutive failures needed to consider the container as unhealthy. Default: 3.

test?: matchN(1, [string, [...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.

timeout?: string ¶

Maximum time to allow one check to run (e.g., '1s', '1m30s'). Default: 30s.

start_period?: string ¶

Start period for the container to initialize before starting health-retries countdown (e.g., '1s', '1m30s'). Default: 0s.

start_interval?: string ¶

Time between running the check during the start period (e.g., '1s', '1m30s'). Default: interval value.

#include:
click to see definition
matchN(
	1,
	[
		string,
		close({
			path?:              #string_or_list
			env_file?:          #string_or_list
			project_directory?: string
		})
	]
)
¶

Compose application or sub-projects to be included.

#label_file: matchN(1, [string, [...string]]) ¶
#list_of_strings: list.UniqueItems() & [...string] ¶

A list of unique string values.

#list_or_dict: matchN(1, [close({[=~".+"]: null | bool | number | string}), list.UniqueItems() & [...string]]) ¶

Either a dictionary mapping keys to values, or a list of strings.

#model: ¶

Language Model for the Compose application.

name?: string ¶

Custom name for this model.

model!: string ¶

Language Model to run.

context_size?: int ¶
runtime_flags?: [...string] ¶

Raw runtime flags to pass to the inference engine.

#network:
click to see definition
null | close({
	{[=~"^x-" & !~"^(name|driver|driver_opts|ipam|external|internal|enable_ipv4|enable_ipv6|attachable|labels)$"]: _}
	name?:   string
	driver?: string
	driver_opts?: {
		{[=~"^.+$"]: number | string}
		...
	}
	ipam?: close({
		{[=~"^x-" & !~"^(driver|config|options)$"]: _}
		driver?: string
		config?: [...close({
			{[=~"^x-" & !~"^(subnet|ip_range|gateway|aux_addresses)$"]: _}
			subnet?:        string
			ip_range?:      string
			gateway?:       string
			aux_addresses?: close({[=~"^.+$"]: string})
		})]
		options?: close({[=~"^.+$"]: string})
	})
	external?: bool |
	string |
	close({
		{[=~"^x-" & !~"^(name)$"]: _}
		name?: string @deprecated()
	})
	internal?:    bool | string
	enable_ipv4?: bool | string
	enable_ipv6?: bool | string
	attachable?:  bool | string
	labels?:      #list_or_dict
})
¶

Network configuration for the Compose application.

#pre_start_hook: ¶

Configuration for a pre_start init container, run to completion before the service container starts.

command?: #command ¶

Command to execute. Optional when the chosen image's entrypoint already runs the intended command.

image?: string ¶

Image used for the ephemeral container. If omitted, the parent service's image is used.

user?: string ¶

User to run the command as. Defaults to the user declared in image (or to the service's user when image is omitted).

privileged?: bool | string ¶

Whether to run the command with extended privileges.

working_dir?: string ¶

Working directory for the command. Defaults to the service's working directory.

environment?: #list_or_dict ¶

Environment variables for the command. Appended to or overriding the service environment.

per_replica?: bool | 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).

#secret: ¶

Secret configuration for the Compose application.

name?: string ¶

Custom name for this secret.

environment?: string ¶

Name of an environment variable from which to get the secret value.

file?: string ¶

Path to a file containing the secret value.

external?: bool | string | { name?: string ... } ¶

Specifies that this secret already exists and was created outside of Compose.

labels?: #list_or_dict ¶

Add metadata to the secret using labels.

driver?: string ¶

Specify which secret driver should be used for this secret.

driver_opts?: {[=~"^.+$"]: number | string} ... ¶

Specify driver-specific options.

template_driver?: string ¶

Driver to use for templating the secret's value.

#service: ¶

Configuration for a service.

develop?: #development ¶
deploy?: #deployment ¶
annotations?: #list_or_dict ¶
attach?: bool | string ¶
build?:
click to see definition
matchN(
	1,
	[
		string,
		close({
			{
				[=~"^x-" &
					!~"^(context|dockerfile|dockerfile_inline|entitlements|args|ssh|labels|cache_from|cache_to|no_cache|no_cache_filter|additional_contexts|network|provenance|sbom|pull|target|shm_size|extra_hosts|isolation|privileged|secrets|tags|ulimits|platforms)$"]:
						_
			}
			context?:             string
			dockerfile?:          string
			dockerfile_inline?:   string
			entitlements?:        [...string]
			args?:                #list_or_dict
			ssh?:                 #list_or_dict
			labels?:              #list_or_dict
			cache_from?:          [...string]
			cache_to?:            [...string]
			no_cache?:            bool | string
			no_cache_filter?:     #string_or_list
			additional_contexts?: #list_or_dict
			network?:             string
			provenance?:          bool | string
			sbom?:                bool | string
			pull?:                bool | string
			target?:              string
			shm_size?:            int | string
			extra_hosts?:         #extra_hosts
			isolation?:           string
			privileged?:          bool | string
			secrets?:             #service_config_or_secret
			tags?:                [...string]
			ulimits?:             #ulimits
			platforms?:           [...string]
		})
	]
)
¶

Configuration options for building the service's image.

blkio_config?: ¶

Block IO configuration for the service.

device_read_bps?: [...#blkio_limit] ¶

Limit read rate (bytes per second) from a device.

device_read_iops?: [...#blkio_limit] ¶

Limit read rate (IO per second) from a device.

device_write_bps?: [...#blkio_limit] ¶

Limit write rate (bytes per second) to a device.

device_write_iops?: [...#blkio_limit] ¶

Limit write rate (IO per second) to a device.

weight?: int | string ¶

Block IO weight (relative weight) for the service, between 10 and 1000.

weight_device?: [...#blkio_weight] ¶

Block IO weight (relative weight) for specific devices.

cap_add?: list.UniqueItems() & [...string] ¶

Add Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.

cap_drop?: list.UniqueItems() & [...string] ¶

Drop Linux capabilities. For example, 'CAP_SYS_ADMIN', 'SYS_ADMIN', or 'NET_ADMIN'.

cgroup?: "host" | "private" ¶

Specify the cgroup namespace to join. Use 'host' to use the host's cgroup namespace, or 'private' to use a private cgroup namespace.

cgroup_parent?: string ¶

Specify an optional parent cgroup for the container.

command?: #command ¶

Override the default command declared by the container image, for example 'CMD' in Dockerfile.

configs?: #service_config_or_secret ¶

Grant access to Configs on a per-service basis.

container_name?: =~"[a-zA-Z0-9][a-zA-Z0-9_.-]+" ¶

Specify a custom container name, rather than a generated default name.

cpu_count?: matchN(1, [string, int & >=0]) ¶

Number of usable CPUs.

cpu_percent?: matchN(1, [string, int & >=0 & <=100]) ¶

Percentage of CPU resources to use.

cpu_shares?: number | string ¶

CPU shares (relative weight) for the container.

cpu_quota?: number | string ¶

Limit the CPU CFS (Completely Fair Scheduler) quota.

cpu_period?: number | string ¶

Limit the CPU CFS (Completely Fair Scheduler) period.

cpu_rt_period?: number | string ¶

Limit the CPU real-time period in microseconds or a duration.

cpu_rt_runtime?: number | string ¶

Limit the CPU real-time runtime in microseconds or a duration.

cpus?: number | string ¶

Number of CPUs to use. A floating-point value is supported to request partial CPUs.

cpuset?: string ¶

CPUs in which to allow execution (0-3, 0,1).

credential_spec?: ¶

Configure the credential spec for managed service account.

config?: string ¶

The name of the credential spec Config to use.

file?: string ¶

Path to a credential spec file.

registry?: string ¶

Path to a credential spec in the Windows registry.

depends_on?:
click to see definition
matchN(
	1,
	[
		#list_of_strings,
		close({
			[=~"^[a-zA-Z0-9._-]+$"]: close({
				{[=~"^x-" & !~"^(restart|required|condition)$"]: _}
				restart?:   bool | string
				required?:  bool
				condition!: "service_started" | "service_healthy" | "service_completed_successfully"
			})
		})
	]
)
¶

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.

device_cgroup_rules?: #list_of_strings ¶

Add rules to the cgroup allowed devices list.

devices?:
click to see definition
[...matchN(
	1,
	[
		string,
		close({
			{[=~"^x-" & !~"^(source|target|permissions)$"]: _}
			source!:      string
			target?:      string
			permissions?: string
		})
	]
)]
¶

List of device mappings for the container.

dns?: #string_or_list ¶

Custom DNS servers to set for the service container.

dns_opt?: list.UniqueItems() & [...string] ¶

Custom DNS options to be passed to the container's DNS resolver.

dns_search?: #string_or_list ¶

Custom DNS search domains to set on the service container.

domainname?: string ¶

Custom domain name to use for the service container.

entrypoint?: #command ¶

Override the default entrypoint declared by the container image, for example 'ENTRYPOINT' in Dockerfile.

env_file?: #env_file ¶

Add environment variables from a file or multiple files. Can be a single file path or a list of file paths.

label_file?: #label_file ¶

Add metadata to containers using files containing Docker labels.

environment?: #list_or_dict ¶

Add environment variables. You can use either an array or a list of KEY=VAL pairs.

expose?: list.UniqueItems() & [...number | string] ¶

Expose ports without publishing them to the host machine - they'll only be accessible to linked services.

extends?:
click to see definition
matchN(
	1,
	[
		string,
		close({
			service!: string
			file?:    string
		})
	]
)
¶

Extend another service, in the current file or another file.

provider?: ¶

Specify a service which will not be manage by Compose directly, and delegate its management to an external provider.

type!: string ¶

External component used by Compose to manage setup and teardown lifecycle of the service.

options?: {[=~"^.+$"]: matchN(1, [bool | number | string, [...bool | number | string]])} ... ¶

Provider-specific options.

external_links?: list.UniqueItems() & [...string] ¶

Link to services started outside this Compose application. Specify services as <service_name>:<alias>.

extra_hosts?: #extra_hosts ¶

Add hostname mappings to the container network interface configuration.

gpus?: #gpus ¶

Define GPU devices to use. Can be set to 'all' to use all GPUs, or a list of specific GPU devices.

group_add?: list.UniqueItems() & [...number | string] ¶

Add additional groups which user inside the container should be member of.

healthcheck?: ¶

Configure a health check for the container to monitor its health status.

disable?: bool | string ¶

Disable any container-specified healthcheck. Set to true to disable.

interval?: string ¶

Time between running the check (e.g., '1s', '1m30s'). Default: 30s.

retries?: number | string ¶

Number of consecutive failures needed to consider the container as unhealthy. Default: 3.

test?: matchN(1, [string, [...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.

timeout?: string ¶

Maximum time to allow one check to run (e.g., '1s', '1m30s'). Default: 30s.

start_period?: string ¶

Start period for the container to initialize before starting health-retries countdown (e.g., '1s', '1m30s'). Default: 0s.

start_interval?: string ¶

Time between running the check during the start period (e.g., '1s', '1m30s'). Default: interval value.

hostname?: string ¶

Define a custom hostname for the service container.

image?: string ¶

Specify the image to start the container from. Can be a repository/tag, a digest, or a local image ID.

init?: bool | string ¶

Run as an init process inside the container that forwards signals and reaps processes.

ipc?: 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.

isolation?: string ¶

Container isolation technology to use. Supported values are platform-specific.

labels?: #list_or_dict ¶

Add metadata to containers using Docker labels. You can use either an array or a list.

links?: list.UniqueItems() & [...string] ¶

Link to containers in another service. Either specify both the service name and a link alias (SERVICE:ALIAS), or just the service name.

logging?: ¶

Logging configuration for the service.

driver?: string ¶

Logging driver to use, such as 'json-file', 'syslog', 'journald', etc.

options?: {[=~"^.+$"]: null | number | string} ... ¶

Options for the logging driver.

mac_address?: string ¶

Container MAC address to set.

mem_limit?: number | string ¶

Memory limit for the container. A string value can use suffix like '2g' for 2 gigabytes.

mem_reservation?: int | string ¶

Memory reservation for the container.

mem_swappiness?: int | string ¶

Container memory swappiness as percentage (0 to 100).

memswap_limit?: number | string ¶

Amount of memory the container is allowed to swap to disk. Set to -1 to enable unlimited swap.

network_mode?: string ¶

Network mode. Values can be 'bridge', 'host', 'none', 'service:[service name]', or 'container:[container name]'.

models?:
click to see definition
matchN(1, [
	#list_of_strings,
	{
		{
			[=~"^[a-zA-Z0-9._-]+$"]: matchN(
				1,
				[
					close({
						{[=~"^x-" & !~"^(endpoint_var|model_var)$"]: _}
						endpoint_var?: string
						model_var?:    string
					}),
					null
				]
			)
		}
		...
	}
])
¶

AI Models to use, referencing entries under the top-level models key.

networks?:
click to see definition
matchN(
	1,
	[
		#list_of_strings,
		close({
			[=~"^[a-zA-Z0-9._-]+$"]: matchN(
				1,
				[
					close({
						{
							[=~"^x-" &
								!~"^(aliases|interface_name|ipv4_address|ipv6_address|link_local_ips|mac_address|driver_opts|priority|gw_priority)$"]:
									_
						}
						aliases?:        #list_of_strings
						interface_name?: string
						ipv4_address?:   string
						ipv6_address?:   string
						link_local_ips?: #list_of_strings
						mac_address?:    string
						driver_opts?: {
							{[=~"^.+$"]: number | string}
							...
						}
						priority?:    number
						gw_priority?: number
					}),
					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.

oom_kill_disable?: bool | string ¶

Disable OOM Killer for the container.

oom_score_adj?: matchN(1, [string, int & >=-1000 & <=1000]) ¶

Tune host's OOM preferences for the container (accepts -1000 to 1000).

pid?: null | string ¶

PID mode for container.

pids_limit?: number | string ¶

Tune a container's PIDs limit. Set to -1 for unlimited PIDs.

platform?: string ¶

Target platform to run on, e.g., 'linux/amd64', 'linux/arm64', or 'windows/amd64'.

ports?:
click to see definition
list.UniqueItems() & [...matchN(
	1,
	[
		number,
		string,
		close({
			{[=~"^x-" & !~"^(name|mode|host_ip|target|published|protocol|app_protocol)$"]: _}
			name?:         string
			mode?:         string
			host_ip?:      string
			target?:       int | string
			published?:    int | string
			protocol?:     string
			app_protocol?: string
		})
	]
)]
¶

Expose container ports. Short format ([HOST:]CONTAINER[/PROTOCOL]).

pre_start?: [...#pre_start_hook] ¶

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.

post_start?: [...#service_hook] ¶

Commands to run after the container starts. If any command fails, the container stops.

pre_stop?: [...#service_hook] ¶

Commands to run before the container stops. If any command fails, the container stop is aborted.

privileged?: bool | string ¶

Give extended privileges to the service container.

profiles?: #list_of_strings ¶

List of profiles for this service. When profiles are specified, services are only started when the profile is activated.

pull_policy?: =~"always|never|build|if_not_present|missing|refresh|daily|weekly|every_([0-9]+[wdhms])+" ¶

Policy for pulling images. Options include: 'always', 'never', 'if_not_present', 'missing', 'build', or time-based refresh policies.

pull_refresh_after?: string ¶

Time after which to refresh the image. Used with pull_policy=refresh.

read_only?: bool | string ¶

Mount the container's filesystem as read only.

restart?: string ¶

Restart policy for the service container. Options include: 'no', 'always', 'on-failure', and 'unless-stopped'.

runtime?: string ¶

Runtime to use for this container, e.g., 'runc'.

scale?: int | string ¶

Number of containers to deploy for this service.

security_opt?: list.UniqueItems() & [...string] ¶

Override the default labeling scheme for each container.

shm_size?: number | string ¶

Size of /dev/shm. A string value can use suffix like '2g' for 2 gigabytes.

secrets?: #service_config_or_secret ¶

Grant access to Secrets on a per-service basis.

sysctls?: #list_or_dict ¶

Kernel parameters to set in the container. You can use either an array or a list.

stdin_open?: bool | string ¶

Keep STDIN open even if not attached.

stop_grace_period?: string ¶

Time to wait for the container to stop gracefully before sending SIGKILL (e.g., '1s', '1m30s').

stop_signal?: string ¶

Signal to stop the container (e.g., 'SIGTERM', 'SIGINT').

storage_opt?: {...} ¶

Storage driver options for the container.

tmpfs?: #string_or_list ¶

Mount a temporary filesystem (tmpfs) into the container. Can be a single value or a list.

tty?: bool | string ¶

Allocate a pseudo-TTY to service container.

ulimits?: #ulimits ¶

Override the default ulimits for a container.

use_api_socket?: bool ¶

Bind mount Docker API socket and required auth.

user?: string ¶

Username or UID to run the container process as.

uts?: string ¶

UTS namespace to use. 'host' shares the host's UTS namespace.

userns_mode?: string ¶

User namespace to use. 'host' shares the host's user namespace.

volumes?:
click to see definition
list.UniqueItems() & [...matchN(
	1,
	[
		string,
		close({
			{[=~"^x-" & !~"^(type|source|target|read_only|consistency|bind|volume|tmpfs|image)$"]: _}
			type!:        "bind" | "volume" | "tmpfs" | "cluster" | "npipe" | "image"
			source?:      string
			target?:      string
			read_only?:   bool | string
			consistency?: string
			bind?: close({
				{[=~"^x-" & !~"^(propagation|create_host_path|recursive|selinux)$"]: _}
				propagation?:      string
				create_host_path?: bool | string
				recursive?:        "enabled" | "disabled" | "writable" | "readonly"
				selinux?:          "z" | "Z"
			})
			volume?: close({
				{[=~"^x-" & !~"^(labels|nocopy|subpath)$"]: _}
				labels?:  #list_or_dict
				nocopy?:  bool | string
				subpath?: string
			})
			tmpfs?: close({
				{[=~"^x-" & !~"^(size|mode)$"]: _}
				size?: matchN(1, [int & >=0, string])
				mode?: number | string
			})
			image?: close({
				{[=~"^x-" & !~"^(subpath)$"]: _}
				subpath?: string
			})
		})
	]
)]
¶

Mount host paths or named volumes accessible to the container. Short syntax (VOLUME:CONTAINER_PATH[:MODE])

volumes_from?: list.UniqueItems() & [...string] ¶

Mount volumes from another service or container. Optionally specify read-only access (ro) or read-write (rw).

working_dir?: string ¶

The working directory in which the entrypoint or command will be run

#service_config_or_secret:
click to see definition
[...matchN(
	1,
	[
		string,
		close({
			{[=~"^x-" & !~"^(source|target|uid|gid|mode)$"]: _}
			source?: string
			target?: string
			uid?:    string
			gid?:    string
			mode?:   number | string
		})
	]
)]
¶

Configuration for service configs or secrets, defining how they are mounted in the container.

#service_hook: ¶

Configuration for service lifecycle hooks, which are commands executed at specific points in a container's lifecycle.

command!: #command ¶

Command to execute as part of the hook.

user?: string ¶

User to run the command as.

privileged?: bool | string ¶

Whether to run the command with extended privileges.

working_dir?: string ¶

Working directory for the command.

environment?: #list_or_dict ¶

Environment variables for the command.

#string_or_list: matchN(1, [string, #list_of_strings]) ¶

Either a single string or a list of strings.

#ulimits:
click to see definition
{
	{
		[=~"^[a-z]+$"]: matchN(
			1,
			[
				int | string,
				close({
					{[=~"^x-" & !~"^(hard|soft)$"]: _}
					hard!: int | string
					soft!: int | string
				})
			]
		)
	}
	...
}
¶

Container ulimit options, controlling resource limits for processes inside the container.

#volume:
click to see definition
null | close({
	{[=~"^x-" & !~"^(name|driver|driver_opts|external|labels)$"]: _}
	name?:   string
	driver?: string
	driver_opts?: {
		{[=~"^.+$"]: number | string}
		...
	}
	external?: bool |
	string |
	close({
		{[=~"^x-" & !~"^(name)$"]: _}
		name?: string @deprecated()
	})
	labels?: #list_or_dict
})
¶

Volume configuration for the Compose application.

Source files

  • schema.cue