Loading...
Instant deploy

Docker Compose Instant Deploy

Bring your existing docker-compose.yml and turn it into managed container apps and add-ons — preview the plan first, then apply from the panel or with a single cdnctl command.

Docker Compose Instant Deploy

How to deploy, step by step

01

Prepare your compose file

Make sure every service uses a prebuilt image (for example image: myorg/web:1.2). Services that only have a build: step are not supported yet, so push those to a registry first. Redis, MySQL/MariaDB, Postgres, and NATS services do not need an image — they are turned into managed add-ons automatically.

02

(Private images) add a registry credential

If any image is private, open Container Apps → registry credentials once and add your registry username and access token, so the platform can pull the image during deploy. Skip this step if all your images are public.

03

Import the file

In the panel open Container Apps → “Import From Docker Compose”, then upload or paste your docker-compose.yml. Nothing is created at this point — importing only reads the file.

04

Preview the plan

The file is parsed on the server and you get the full plan before anything happens: which container apps will be created, which services become managed add-ons, which keys are stored as environment vs. secrets, any warnings or unsupported services, and whether it fits your quota.

05

Apply

Confirm to apply. In a single all-or-nothing transaction the apps and add-ons are created and wired together — ports, environment, volumes, replicas, healthchecks, and depends_on order are mapped for you. If any step fails, nothing is created.

06

Expose and manage

Expose the web service to get a free name.cdn.com.tr URL with automatic HTTPS, or attach your own domain. From there manage logs, environment, scaling, and restarts in the panel. Prefer the terminal? “cdnctl container compose preview” and “… apply” do the same in two commands.

Who is it for?

Teams that already describe their stack in a docker-compose file and want it running behind the edge without rebuilding it service by service.

How does it work?

Services with a prebuilt image become container apps; Redis, MySQL/MariaDB, Postgres, and NATS services are converted into managed add-ons and attached to the apps that depend on them. Ports, environment, volumes, replicas, healthchecks, and depends_on order are mapped automatically.

Preview before apply

Preview parses the file server-side and returns the plan: apps to create, add-on mappings, environment vs. secret keys, warnings, unsupported services, and whether it fits your quota. Nothing is created until you apply, and secret values are never echoed back — only key names.

Safe by default

Apply is all-or-nothing inside a single transaction: if an app name already exists or a step fails, nothing is created. Secret-like keys such as passwords, tokens, and API keys are stored as secrets rather than plain environment values.

Example scenarios

Lift an existing stack

Move a multi-service compose project to managed apps and add-ons.

Spin up a demo fast

Stand up a review or demo environment from the same compose file.

Standardize delivery

Use one compose file as the source of truth across projects.

Frequently asked questions

No. Each app service needs a prebuilt image. Services that only define a build step are listed as unsupported in the preview, so you can push an image first.

Redis, MySQL/MariaDB, Postgres, and NATS services are converted into managed add-ons and attached to the apps that depend on them, instead of running as raw containers.

A single import handles up to 20 services. Run preview first to see the full plan and whether it fits your account quota.