# Ein Dockerfile schreiben

Source : https://webgune.cloud/de-de/docs/docker-dockerfile · Mis à jour le 2026-10-27

# Ein Dockerfile schreiben

Ein paar Prinzipien, die Ihre Images schlank und Ihre Builds auf Webgune schnell halten.

## Multi-Stage: Beispiel Node.js

```dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build

FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
CMD ["node", "dist/server.js"]
```

Die Stage `builder` enthält die Kompilierungswerkzeuge und den npm-Cache; nur das strikt Notwendige wird in die finale Stage kopiert, was die Größe des ausgelieferten Images stark reduziert.

## Multi-Stage: Beispiel Go

```dockerfile
FROM golang:1.22-alpine AS builder
WORKDIR /app
COPY go.* ./
RUN go mod download
COPY . .
RUN go build -o server .

FROM alpine:latest
COPY --from=builder /app/server /server
CMD ["/server"]
```

## Checkliste vor dem Pushen

- [ ] Die Anwendung lauscht auf `0.0.0.0:$PORT`, nicht auf einem fest codierten Port.
- [ ] Kein Secret wird in das Image kopiert: alles läuft über [Umgebungsvariablen](/docs/variables-environnement).
- [ ] Eine `.dockerignore` schließt `node_modules`, `.git`, `.env` aus.
- [ ] Das finale Image verwendet, wo möglich, eine schlanke Basis (`alpine`, `slim`).
