Skip to main content
The Docker template lets you deploy any containerized application. Use it when you want full control over your runtime - Go, Rust, Elixir, or any language with Docker support.

When to use

✅ Good for

  • Go microservices
  • Rust web APIs
  • Elixir/Phoenix apps
  • Custom runtimes
  • Existing Dockerized apps

⚠️ Consider alternatives

  • Python APIs → use backend-service
  • Next.js sites → use static-site
  • Fullstack apps → use web-app

Quick start

Project structure

Requirements

Your Dockerfile must:
1

Expose the correct port

Match the port in runtm.yaml (default: 8080)
2

Implement health endpoint

GET /health must return HTTP 200
3

Start quickly

Application must be ready within 10 seconds

Manifest

The docker template uses a minimal manifest:
runtm.yaml
The docker template doesn’t require a runtime field since you provide your own Dockerfile.

Example Dockerfiles

Health endpoint:

Environment variables

Declare environment variables in your manifest:
runtm.yaml
Set secrets locally:

Machine tiers

Set in your manifest:
runtm.yaml

Deployment checklist

1

Replace Dockerfile

Replace the placeholder with your application build
2

Implement health endpoint

Ensure GET /health returns HTTP 200
3

Test locally

4

Update discovery metadata

Edit runtm.discovery.yaml and replace all # TODO: placeholders
5

Deploy

Constraints

The placeholder Dockerfile in the template is for demonstration only. You must replace it with your actual application build.