Managed Container
Docker Compose import
Import an existing docker-compose.yml as managed Container Apps in one step. The platform parses the file server-side, shows a non-destructive preview plan, and only creates resources after you confirm.
Back to Platform HelpWhat it does
Each compose service is mapped to a managed Container App or add-on. Always preview first; nothing is created until you apply.
- Services with a prebuilt image become Container Apps.
- redis, mysql/mariadb, postgres/timescale, and nats images become managed add-ons attached to the apps that depends_on them.
- Environment keys matching PASSWORD, SECRET, TOKEN, API_KEY, or CREDENTIAL are stored as encrypted secrets; their values are never echoed back.
- A host:container port keeps the container side; the host side is ignored (public exposure uses the platform domain and expose flow).
- The first volume becomes the persistent mount; deploy.replicas is honored, capped at 10.
- depends_on sets the creation order so backing services come up before their consumers.
Import from the panel
Drive the whole import from the management panel without leaving the browser.
- Open the account, go to Platforms, and select the Container Apps tab.
- Click Import from Docker Compose and paste or upload your docker-compose.yml.
- Review the preview plan: apps, add-on mappings, env/secret key classification, warnings, unsupported services, and the app-quota check.
- Confirm to apply. Apps are created in dependency order; deploy each app afterward.
Import from the terminal
The same import is available through cdnctl. Preview first, then apply with explicit confirmation.
cdnctl container compose preview --account <uuid> --file docker-compose.yml
cdnctl container compose apply --account <uuid> --file docker-compose.yml --yes
cdnctl container apps deploy --account <uuid> --app <app_uuid>
What is not supported
These compose features are rejected or ignored in v1. Apply is all-or-nothing, so an unsupported service blocks the whole import until removed.
- build: services — publish a prebuilt image first.
- command and entrypoint overrides — bake them into the image.
- env_file and file-based compose secrets.
- More than one persistent mount per service; only the first container-side path is kept.
- More than 20 services, or a compose body larger than 256 KB.
Quotas and safety
- Apply is all-or-nothing: if any app name conflicts or any service is unsupported, nothing is created.
- The app-quota entitlement is a hard block; the preview reports whether the import fits before you confirm.
- Secret values are never echoed back — preview and plan responses return key names only.