Tobias Ludwig
Start
ServicesWeb, Apps, Backend und KIPlanerBausteine wählen, Preis sofort sehenBranchen-DemosBeispielseiten für Handwerk, Praxis, GastroReferenzenKundenprojekte mit ErgebnisMatch-CheckPasst das Vorhaben zu mir?Über michWer hinter der Seite steht
ProjekteEigene Software und Open SourceProdukteFertige Apps und WerkzeugeFlutterPlugins und PaketeBlogNotizen aus der Praxis
ToolsKleine Helfer im BrowserTech-WikiWerkzeuge und Stacks, kurz erklärtShowcaseDemos, Shader, Inszenierungen
Support & HilfeHilfe zu laufenden ProjektenMein KontoTickets und Zugänge
Erstgespräch
Erstgespräch buchenKostenloser Kennenlern-CallKontakt schreibenNachricht per Formular
$whoami
Tobias Ludwig
DevOps · Application Manager · Software Engineer
$ls /pages
tobias-ludwig/projekte/kontakt/kalender/impressum/datenschutz/
$git remote
github.com/nexas105
online·next.js 16·hono·postgresql
© 2026 tjl·stay curious_
Ambient OFF
Weiter so… ↓↓ ← → ← → B A
zurück zur Tech-Wiki
Tech-Wiki/Infrastruktur
D

Docker

Container-Plattform für reproduzierbare Build-/Deploy-Pipelines.

·Docker Inc.·Apache-2.0
WebsiteDocsRepository

Übersicht

Was ist es?

Docker containerisiert Anwendungen — reproduzierbare Builds, isolierte Runtimes, identische Umgebungen von Dev bis Prod. Standard für Deploy-Pipelines (auch hier: Frontend baut auf Coolify via frontend/Dockerfile).

Quickstart

brew install --cask docker
docker --version
docker run hello-world

Minimaler Next.js-Dockerfile:

FROM node:20-alpine AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && pnpm install --frozen-lockfile

FROM deps AS build
COPY . .
RUN pnpm build

FROM node:20-alpine AS run
COPY --from=build /app/.next/standalone ./
CMD ["node", "server.js"]

Typische Patterns

  • Multi-Stage Builds — Build-Tools im ersten Stage, schlankes Runtime-Image am Ende.
  • .dockerignore mit node_modules, .next, .git — Build-Context klein halten.
  • Layer-Caching: erst package.json kopieren + install, dann Source — Re-Build nur bei Dep-Änderung.
  • docker compose für lokale Multi-Service-Stacks (Supabase self-hosted nutzt das).
  • Non-Root-User im Final-Stage: USER node für Security.

Gotchas / Was oft schiefgeht

  • COPY . . ohne .dockerignore → ganzes Repo (inkl. node_modules, .git) im Build-Context, schlechte Performance.
  • Apple-Silicon vs Linux/amd64: Builds laufen lokal, brechen auf Server. --platform=linux/amd64 setzen.
  • Layer-Order falsch → Cache wird invalidiert. Erst Deps, dann Source.
  • Secrets in ENV landen im Image — --secret-Mount nutzen oder Build-Args, die nicht in Final-Layer landen.
  • latest-Tag in Production = Roulette. Konkrete Versions-Tags / Digests.

Wann nicht?

Statische Sites ohne Backend → Edge-Hosting (Vercel/Cloudflare Pages) ohne Docker-Overhead. Native-Apps offensichtlich nicht.

Eingesetzt in

Projekte(5)

  • detect_api
  • NextCMS
  • Partner Flutter App
  • Bewerbungsplattform
  • DBFV NRW Verbandsplattform

Referenzen(4)

  • physiques-unlimited.de
  • DBFV NRW Verbandsplattform
  • frank-klingebiel.de
  • alexander-mittag.de

Produkte(6)

  • BB-Wertung
  • TJL IT
  • KODOYA
  • EroHub Community
  • Relay
  • NextCMS

Kategorie

Infrastruktur

Tags

containerdevops

Aliase

docker engine

Slug

docker