Files
uncloud/website/docs/3-concepts/5-compose/1-support-matrix.md
T

6.3 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:

Feature Support Status Notes
Services
build ✅ Supported Build context and Dockerfile
command ✅ Supported Override container command
configs ✅ Supported File-based and inline configs
cpus ✅ Supported CPU limit
depends_on ❌ Not supported Services start independently
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
image ✅ Supported Container image specification
init ✅ Supported Run init process in container
labels ❌ Not supported Not currently needed
links ❌ Not supported Use service names for communication
logging ✅ Supported Uses Docker daemon logging
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
ports ⚠️ Limited Basic port publishing. Use x-ports for HTTP/HTTPS
privileged ✅ Supported Run containers in privileged mode
pull_policy ✅ Supported always, missing, never
secrets ❌ Not supported Use configs or environment variables
security_opt ❌ Not supported
storage_opt ❌ Not supported
user ✅ Supported Set container user
volumes ✅ Supported Named volumes, bind mounts, tmpfs
Deploy
labels ❌ Not supported Not needed
mode ⚠️ Limited Only replicated supported
placement ❌ Not supported Use x-machines extension
replicas ✅ Supported Number of container replicas
resources ⚠️ Limited CPU and memory limits only
restart_policy ❌ Not supported Services auto-restart
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 ⚠️ Limited Must exist before deployment
Volume drivers ⚠️ Limited Local driver only
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-caddy ✅ Uncloud-specific Custom Caddy configuration
x-machines ✅ Uncloud-specific Machine placement constraints
x-ports ✅ Uncloud-specific HTTP/HTTPS port publishing

Legend

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

Uncloud Extensions

Uncloud provides several custom extensions to enhance the Compose experience:

x-ports

Define HTTP/HTTPS endpoints for services:

services:
  web:
    image: nginx
    x-ports:
      - 80/https
      - example.com:80/https

x-caddy

Custom Caddy reverse proxy configuration:

services:
  web:
    image: nginx
    x-caddy: |
      example.com {
        reverse_proxy {{ upstreams 80 }}
      }

x-machines

Specify on what machines the service should run:

services:
  web:
    image: nginx
    x-machines: ["web-1", "web-2"]