Auto-detection (no Dockerfile needed)
By default, floo uses Railpack to auto-detect your runtime from project files and build automatically. No Dockerfile required.| File | Detected runtime |
|---|---|
package.json + next | Node.js (Next.js) |
package.json + vite | Node.js (Vite) |
package.json + express | Node.js (Express) |
requirements.txt / pyproject.toml + fastapi | Python (FastAPI) |
requirements.txt / pyproject.toml + flask | Python (Flask) |
requirements.txt / pyproject.toml + django | Python (Django) |
go.mod | Go |
index.html (no backend) | Static HTML |
floo deploy --dry-run shows what was detected without deploying.
When to write a Dockerfile
Use a Dockerfile when you need:- Custom build steps (e.g., code generation, asset compilation)
- Multi-stage builds for smaller images
- Non-standard runtimes or system dependencies
- Specific base image requirements
Dockerfile is present in your project root, floo uses it directly — no auto-detection.
Cached base images
floo provides pre-cached base images hosted in floo’s container registry. These are pulled instantly during builds, cutting build times significantly.| Image | Tags |
|---|---|
floo-base-node | 20, 22 |
floo-base-python | 3.12, 3.13 |
floo-base-ruby | 3.3 |
floo-base-go | 1.23 |
Dockerfile:
floo-base-* to the full registry URI (us-docker.pkg.dev/floo-prod/floo-images/...) automatically.
List all available images:
Example: Node.js with floo-base-node
Example: Python with floo-base-python
floo images CLI reference for the full list of available images and their URIs.