Production Dockerfiles, generated.
Pick your stack, set a handful of options, and get a Dockerfile, a .dockerignore and a compose file that are multi-stage, non-root and cached by default. Free, and nothing leaves the page.
34 stacks
Next.js
Standalone output, non-root, ~110 MB
JavaScriptNuxt
Nitro .output bundle, nothing else shipped
JavaScriptAstro
Node adapter, standalone mode
JavaScriptSvelteKit
adapter-node, self-contained build
JavaScriptReact Router 7
Formerly Remix — served by react-router-serve
JavaScriptVite
Any Vite SPA, served by nginx
JavaScriptReact
Client-rendered React, served by nginx
JavaScriptVue
Client-rendered Vue, served by nginx
JavaScriptSvelte
Client-rendered Svelte, served by nginx
JavaScriptSolidJS
Client-rendered Solid, served by nginx
JavaScriptAngular
The application builder output layout
JavaScriptStatic Site
Prebuilt HTML, no build step
StaticNode.js
Any Node app — with or without a build step
JavaScriptExpress
The classic Node server, done properly
JavaScriptFastify
Low-overhead Node API
JavaScriptHono
Edge-style router on the Node adapter
JavaScriptNestJS
Compiled to dist/, dev dependencies stripped
JavaScriptBun
Runtime, bundler and package manager in one image
JavaScriptDeno
Explicit permissions, cached module graph
JavaScriptStrapi
Admin panel built in, dev dependencies pruned out
CMS & CommercePayload CMS
Payload 3 on Next.js standalone output
CMS & CommerceDirectus
Extends the official image with your extensions
CMS & CommerceMedusa
Medusa 2 server build output
CMS & CommerceDjango
Gunicorn, collectstatic, non-root
PythonFastAPI
Uvicorn workers, async all the way down
PythonFlask
Gunicorn in front, never the dev server
PythonLaravel
FrankenPHP, config cached, non-root
PHPSymfony
FrankenPHP, warmed cache, non-root
PHPPHP
Any PHP app, framework or not
PHPGo
Static binary into scratch or distroless
Go & RustRust
Cached cargo builds, distroless runtime
Go & RustRuby on Rails
Bundler deployment mode, assets precompiled
RubySpring Boot
Layered jar, JRE runtime, non-root
JVM & .NET.NET
ASP.NET runtime image, non-root by default
JVM & .NETWhat you actually get
Every generator applies the same set of practices, so you never have to remember which stack needed which flag.
Genuinely multi-stage
Compilers, dev dependencies and source files stay in the build stages. The runtime image carries only what the app needs to serve a request.
Non-root, always
Every generated image drops privileges before the process starts, and web servers bind a high port so nothing needs root at any point.
BuildKit cache mounts
The package manager store persists between builds without adding a byte to the image, so a rebuild after a lockfile change reuses everything already downloaded.
A .dockerignore, every time
The single most-skipped file. Without it, COPY . . ships your .git history, your node_modules and your .env into a layer anybody who can pull the image can read.
A compose file that runs
Add Postgres, MySQL, MongoDB or Redis and the app waits on service_healthy rather than racing the database on first boot.
Current runtimes
Node 24, Python 3.13, PHP 8.4, Go 1.24, Ruby 3.4, .NET 9, JDK 21. With a warning when you pick a version that is about to go end-of-life.