Files
b7e224a1ef feat(compose): support stdin_open and tty (#419)
* feat: support stdin_open and tty

This can be useful to leave a container running without specifying a
command like `sleep`, and probably in other situations as well.

Signed-off-by: Miek Gieben <miek@miek.nl>

* Complete full spec test case

Signed-off-by: Miek Gieben <miek@miek.nl>

* fix container log streaming for containers with TTY

---------

Signed-off-by: Miek Gieben <miek@miek.nl>
Co-authored-by: Pasha Sviderski <me@psviderski.name>
2026-07-30 21:50:54 +10:00

15 KiB

Compose support matrix

Uncloud supports a subset of the Compose specification with some extensions and limitations. The following table shows the support status for main Compose features.

:::info

If you rely on a specific Compose feature that is not supported by Uncloud, please submit a feature request in GitHub Discussions or on Discord.

:::

Feature Support Status Notes
Services
build Supported Build context and Dockerfile
cap_add Supported Additional kernel capabilities
cap_drop Supported Which kernel capabilities to drop
command Supported Override container command
configs Supported File-based and inline configs
cpus Supported CPU limit
depends_on ⚠️ Limited Deployed in dependency order. Use pre-deploy hooks for service_completed_successfully
devices Supported Device mappings
dns Not supported Built-in service discovery
dns_search Not supported Built-in service discovery
entrypoint Supported Override container entrypoint
env_file Supported Environment file
environment Supported Environment variables
gpus Supported GPU device access
healthcheck Supported Health check configuration
image Supported Container image specification
init Supported Run init process in container
labels Not supported
links Not supported Use service names for communication
logging Supported Defaults to local log driver
mem_limit Supported Memory limit
mem_reservation Supported Memory reservation
mem_swappiness Not supported
memswap_limit Not supported
networks Not supported All containers share cluster network
pid Supported Set the PID namespace mode, pid: host only
ports ⚠️ Limited mode: host only, use x-ports for HTTP/HTTPS
privileged Supported Run containers in privileged mode
pull_policy Supported always, missing, never
secrets ⚠️ Limited Reference secrets in environment, see Secrets. File mounts not supported
security_opt Not supported
shm_size Supported Shared memory size
stdin_open Supported Allocate standard input and keep it open
stop_grace_period Supported Time to wait after SIGTERM before SIGKILL
storage_opt Not supported
sysctls Supported Namespaced kernel parameters
tty Supported Allocate a pseudo-TTY and connect the container's standard streams to it
ulimits Supported Resource limits
user Supported Set container user
volumes Supported Named volumes, bind mounts, tmpfs
Deploy
labels Not supported
mode Supported Either global or replicated
placement Not supported Use x-machines extension
replicas Supported Number of container replicas
resources ⚠️ Limited CPU, memory limits and device reservations
restart_policy Not supported Defaults to unless-stopped
rollback_config Not supported See #151
update_config ⚠️ Limited order and monitor supported. See rolling deployments
Volumes
Named volumes Supported Docker volumes
Bind mounts Supported Host path binding
Tmpfs mounts Supported In-memory filesystems
Volume labels Supported Custom labels
External volumes Supported Must exist before deployment
Volume drivers Supported local (supports NFS, CIFS/Samba) and manually installed third-party drivers
Configs
File-based configs Supported Read from file
Inline configs Supported Defined in compose file
External configs Not supported Not supported
Short syntax Not supported Use long syntax only
Extensions
x-context Uncloud-specific Cluster context override
x-caddy Uncloud-specific Custom Caddy configuration
x-machines Uncloud-specific Machine placement constraints
x-ports Uncloud-specific Service port publishing
x-pre_deploy Uncloud-specific Pre-deploy hook command

Legend

  • Supported: Feature works as documented
  • ⚠️ Limited: Partial support or with restrictions
  • Not supported: Feature is not (yet) available

See Compose extensions for details on additional Compose features provided by Uncloud.