All pages

Start

What it can build

A Dockerfile is used as it is. Without one, the project is recognised and a build is generated for it.

Recognised projects

Dockerfile
Your Dockerfile and its CMD. Port: the one it exposes, else 8080.
Node.js
Node 22; npm, yarn or pnpm by lockfile; the build script if there is one; started with npm start. Port 3000.
Next.js · Vite
As Node.js, with the build required. A Vite build is served as static files.
FastAPI
Python 3.12; requirements.txt or pyproject.toml; started with uvicorn. Port 8000.
Flask · Django
As FastAPI, started with gunicorn.
Go
A static binary from the root package or the single one under cmd/. Port 8080.
Ruby
Ruby 3.4 and bundle install. Rails, a config.ru or an app.rb. Port 3000.
PHP
PHP 8.4 with Apache; composer install when there is a composer.json. Port 8080.
Static site
An index.html and the files next to it.

The one rule

Every container receives a PORT variable and must listen on 0.0.0.0 at that port. Listening on localhost only is the most common reason a health check fails.

Overriding what was detected

A project's settings take a root directory (for a repository with several applications), a start command, a port and a health check path. Variables are available when the application runs, and during the build of a generated Dockerfile without being stored in the image.