Skip to main content

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.

FeatureSupport StatusNotes
Services
build✅ SupportedBuild context and Dockerfile
cap_add✅ SupportedAdditional kernel capabilities
cap_drop✅ SupportedWhich kernel capabilities to drop
command✅ SupportedOverride container command
configs✅ SupportedFile-based and inline configs
cpus✅ SupportedCPU limit
depends_on⚠️ LimitedDeployed in dependency order. Use pre-deploy hooks for service_completed_successfully
devices✅ SupportedDevice mappings
dns❌ Not supportedBuilt-in service discovery
dns_search❌ Not supportedBuilt-in service discovery
entrypoint✅ SupportedOverride container entrypoint
env_file✅ SupportedEnvironment file
environment✅ SupportedEnvironment variables
gpus✅ SupportedGPU device access
healthcheck✅ SupportedHealth check configuration
image✅ SupportedContainer image specification
init✅ SupportedRun init process in container
labels❌ Not supported
links❌ Not supportedUse service names for communication
logging✅ SupportedDefaults to local log driver
mem_limit✅ SupportedMemory limit
mem_reservation✅ SupportedMemory reservation
mem_swappiness❌ Not supported
memswap_limit❌ Not supported
networks❌ Not supportedAll containers share cluster network
pid✅ SupportedSet the PID namespace mode, pid: host only
ports⚠️ Limitedmode: host only, use x-ports for HTTP/HTTPS
privileged✅ SupportedRun containers in privileged mode
pull_policy✅ Supportedalways, missing, never
secrets❌ Not supportedUse configs or environment variables
security_opt❌ Not supported
shm_size✅ SupportedShared memory size
stop_grace_period✅ SupportedTime to wait after SIGTERM before SIGKILL
storage_opt❌ Not supported
sysctls✅ SupportedNamespaced kernel parameters
ulimits✅ SupportedResource limits
user✅ SupportedSet container user
volumes✅ SupportedNamed volumes, bind mounts, tmpfs
Deploy
labels❌ Not supported
mode✅ SupportedEither global or replicated
placement❌ Not supportedUse x-machines extension
replicas✅ SupportedNumber of container replicas
resources⚠️ LimitedCPU, memory limits and device reservations
restart_policy❌ Not supportedDefaults to unless-stopped
rollback_config❌ Not supportedSee #151
update_config⚠️ Limitedorder and monitor supported. See rolling deployments
Volumes
Named volumes✅ SupportedDocker volumes
Bind mounts✅ SupportedHost path binding
Tmpfs mounts✅ SupportedIn-memory filesystems
Volume labels✅ SupportedCustom labels
External volumes✅ SupportedMust exist before deployment
Volume drivers✅ Supportedlocal (supports NFS, CIFS/Samba) and manually installed third-party drivers
Configs
File-based configs✅ SupportedRead from file
Inline configs✅ SupportedDefined in compose file
External configs❌ Not supportedNot supported
Short syntax❌ Not supportedUse long syntax only
Extensions
x-context✅ Uncloud-specificCluster context override
x-caddy✅ Uncloud-specificCustom Caddy configuration
x-machines✅ Uncloud-specificMachine placement constraints
x-ports✅ Uncloud-specificService port publishing
x-pre_deploy✅ Uncloud-specificPre-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.