When buildpacks aren’t enough — a custom system dependency, a multi-stage build,
an exact base image — commit a Dockerfile and Wokku builds your app from it
instead.
How it works
If a Dockerfile exists at the root of your repo, Wokku uses it automatically
on git push — no buildpack, no config. You own the whole build.
1. Add a Dockerfile
dockerfile
FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
// careful
2. Deploy
bash
git remote add wokku git@git.wokku.cloud:my-app
git push wokku main
Wokku detects the Dockerfile, builds the image on your server, and runs it.
Watch the build in your logs.
3. Multiple processes
A Procfile still works with Dockerfile deploys — declare extra process types
and they run from the built image:
procfile
web: node server.js
worker: node worker.js
4. Run migrations on release
procfile
release: node migrate.js
web: node server.js
The release process runs after a successful build, before traffic shifts.
Tips
- Smaller images deploy faster — use slim/alpine bases and multi-stage builds.
- Cache dependencies — copy lockfiles and install before copying source (as above).
- Don’t bake secrets — set them as config vars, read at runtime.
Troubleshooting
- Builds but no response —
EXPOSEand listen on the same port; prefer$PORT. - Build is slow every time — reorder layers so dependency install is cached.
- Wokku used a buildpack instead — make sure the
Dockerfileis at the repo root.