Deploy · Docker

Host any Docker container. No Kubernetes.

Runex hosts Docker containers built from the Dockerfile in your GitHub repository. Runex builds the image, runs it in an isolated container with CPU and memory limits, and serves it over HTTPS: you never touch a cluster.

  • Your Dockerfile, any language
  • Isolated container
  • HTTPS included
acme/api
source
Dockerfile · acme/api
image
built on push
runtime
isolated container
limits
cpu + memory
url
https://api.runex.cloud
illustrative namesrunex

Definition

What is Docker container hosting?

A service that builds your Docker image and runs it as a live, reachable container. Docker hosting is the most flexible option on Runex, alongside the built-in Next.js, Node.js, Python, and Go builds.

A Dockerfile is a recipe for an image: the base system, your dependencies, your code, and the command that starts it. A container is a running copy of that image.

Hosting a container yourself means a server, a container runtime, a reverse proxy, TLS, and restarts. On Runex, that's the platform's job.

Because the Dockerfile defines everything, any language or framework works: Rust, Elixir, PHP, Java, or a custom build of anything.

How to deploy

How do you deploy a Dockerfile on Runex?

Add a Dockerfile, connect the repo, push. Pull requests get their own preview deployments too.

  1. You

    Add a Dockerfile

    At the repo root, with a CMD that starts your server.

  2. You

    Connect the repo

    Install the Runex GitHub App.

  3. Runex

    Build the image

    On every push to your branch.

  4. Runex

    Run and serve

    Isolated container, HTTPS URL.

Configuration

What does a production-ready Dockerfile look like?

Small base image, cached dependencies, non-root user, and a port from PORT.

Dockerfile
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev          # cached layer
COPY . .
USER node                      # don't run as root
ENV PORT=3000
CMD ["node", "server.js"]      # listens on 0.0.0.0:$PORT
Dockerfilerunex

Add a .dockerignore with node_modules, .git, and .env so builds stay fast and secrets stay out of the image.

Avoid

What are the most common Dockerfile mistakes?

Five that cause most failed container deploys. When a deploy still fails, follow the failed deployment checklist.

  • Server binds to 127.0.0.1 instead of 0.0.0.0
  • Copying .env or keys into the image
  • No .dockerignore, so builds upload gigabytes
  • Running as root when the app doesn't need it
  • A CMD that exits immediately instead of running the server

FAQ

Docker deploy questions

Short answers for your first deploy.

Can Runex run any Docker container?

Runex runs containers built from a Dockerfile in your GitHub repository. Any language works, as long as the container starts a server that listens on the expected port.

Do I need Kubernetes to run containers on Runex?

No. Runex schedules, restarts, and scales your containers for you. There's no cluster to create or manage.

Can I deploy a prebuilt image from Docker Hub?

Runex builds from the Dockerfile in your GitHub repo. To use a prebuilt image, reference it in a one-line Dockerfile, such as FROM your-image:tag.

Does Docker Compose work on Runex?

Not as a file. Deploy each Compose service as a Runex service in one project; they reach each other by internal hostname over the private network.

Next step

Ship your Dockerfile.

Connect your repo and get a live HTTPS URL on your first deploy. Free to start.