Technik 2.1 — DevOps & CI/CD

Docker — verpackte Software

Container packen Anwendung + Abhängigkeiten + OS‑Userland in ein Image. „Works on my machine" gibt's nicht mehr.

Anatomie:
  • Image: unveränderliches Snapshot — wie eine Vorlage.
  • Container: laufende Instanz eines Images.
  • Dockerfile: Rezept zum Bauen eines Images.
  • Volume: Datenspeicher außerhalb des Containers.
  • Network: wie Container miteinander reden.
Beispiel‑Dockerfile (Multi‑Stage):
FROM node:22-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:22-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/server.js"]
docker‑compose.yml — mehrere Services:
services:
  web:
    build: .
    ports: ["3000:3000"]
    environment:
      DATABASE_URL: postgres://wb:secret@db:5432/app
    depends_on: [db]
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: wb
      POSTGRES_PASSWORD: secret
    volumes: [pgdata:/var/lib/postgresql/data]
volumes:
  pgdata:
Zurück zu Technik