These are the Compose file features supported on Kubernetes
| Feature | docker stack deploy | Compose on Kubernetes |
|---|---|---|
| build | ||
| - context | ||
| - dockerfile | ||
| - args | ||
| - cache_from | ||
| - labels | ||
| cap_add | Yes | |
| cap_drop | Yes | |
| command | Yes | Yes |
| configs | Yes | Yes |
| - external | Yes | Yes |
| - file | Yes | Yes |
| - mode | Yes | Yes |
| cgroup_parent | ||
| container_name | ||
| credential_spec | Yes | |
| deploy | Yes | |
| - endpoint_mode: vip | Yes | Yes |
| - endpoint_mode: dnsrr | Yes | |
| - labels | Yes | Yes |
| - mode | Yes | Yes |
| - placement | Yes | Partial |
| - replicas | Yes | Yes |
| - resources | Yes | Yes |
| -- limits | Yes | Yes |
| -- reservations | Yes | Yes |
| - restart_policy | Yes | Yes |
| -- condition: none | Yes | Yes |
| -- condition: on-failure | Yes | Yes |
| -- condition: any | Yes | Yes |
| -- delay | Yes | |
| -- max_attempts | Yes | |
| -- window | Yes | |
| - update_config | Yes | |
| -- parallelism | Yes | Yes |
| -- delay | Yes | |
| -- failure_action | Yes | |
| -- monitor | Yes | |
| -- max_failure_ratio | Yes | |
| - devices | ||
| - depends_on | ||
| - dns | ||
| - dns_search | ||
| - tmpfs | Yes | |
| - entrypoint | Yes | Yes |
| - env_file | Yes | Yes |
| - environment | Yes | Yes |
| -- key=value | Yes | Yes |
| -- key | Yes | |
| - expose | Yes | Yes |
| - external_links | ||
| - extra_hosts | Yes | Yes |
| - healthcheck | Yes | Yes |
| -- test | Yes | Yes |
| -- test: NONE | Yes | Yes |
| -- interval | Yes | Yes |
| -- timeout | Yes | Yes |
| -- retries | Yes | Yes |
| -- disable | Yes | Yes |
| - image | Yes | Yes |
| - isolation | Yes | |
| - labels | Yes | Yes |
| - links | ||
| - logging | Yes | |
| -- driver | Yes | |
| -- options | Yes | |
| - network_mode | ||
| - networks | Yes | |
| -- aliases | Yes | |
| -- ipv4_address | Yes | |
| -- ipv6_address | Yes | |
| - pid: host | Yes | Yes |
| - ports | Yes | Yes |
| -- target | Yes | Yes |
| -- published | Yes | Yes |
| -- protocol | Yes | Yes |
| -- mode: host | Yes | Not sure |
| -- mode: ingress | Yes | Not sure |
| - secrets | Yes | Yes |
| -- source | Yes | Yes |
| -- target | Yes | Yes |
| -- uid | Yes | |
| -- gid | Yes | |
| -- mode | Yes | Yes |
| - security_opt | ||
| - stop_grace_period | Yes | Yes |
| - stop_signal | ||
| - sysctls | ||
| - ulimits | ||
| - userns_mode | ||
| - volumes | Yes | Yes |
| -- type: volume | Yes | Yes |
| -- type: bind | Yes | Yes |
| -- source | Yes | Yes |
| -- target | Yes | Yes |
| -- read_only | Yes | Yes |
| -- bind/propagation | Yes | |
| -- volume/nocopy | Yes | |
| - restart | ||
| - domainname | ||
| - hostname | Yes | Yes |
| - ipc | Yes | |
| - mac_address | ||
| - privileged | Yes | |
| - read_only | Yes | Yes |
| - shm_size | ||
| - stdin_open | Yes | Yes |
| - tty | Yes | Yes |
| - user: numerical | Yes | Yes |
| - user: name | Yes | |
| - working_dir | Yes | Yes |
- mac_address (kubernetes/kubernetes#2289)
- shm_size (kubernetes/kubernetes#28272)
- ulimits (kubernetes/kubernetes#3595)
- non numerical user
Before a yaml file is sent to Kubernenetes, its ${...} placeholders
are replaced with actual values.
- A first attempt is made at reading the variable from a
.envfile is current working directory. - If no value is found, an environment variable are used.