Docker je jednoduchý na naučení, ale těžký na zvládnutí. Tady je 10 chyb, které dělá skoro každý.
1. Používání :latest tagu¶
❌ FROM node:latest¶
✅ FROM node:20.11-alpine¶
2. Running as root¶
RUN addgroup -S app && adduser -S app -G app USER app
3. Obří image¶
Použijte multi-stage builds a Alpine:
FROM node:20 AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build
FROM node:20-alpine COPY –from=build /app/dist ./dist CMD [“node”, “dist/index.js”]
4. Špatné pořadí vrstev (cache)¶
✅ Dependencies first, pak kód¶
COPY package*.json ./ RUN npm install COPY . .
5. Chybějící .dockerignore¶
node_modules .git .env Dockerfile
6. Secrets v image¶
Nikdy nedávejte hesla do Dockerfile. Použijte runtime env nebo Docker secrets.
7. Víc procesů v jednom kontejneru¶
Jeden kontejner = jeden proces. Nedělejte z kontejneru VM.
8. Žádný health check¶
HEALTHCHECK –interval=30s –timeout=3s CMD curl -f http://localhost:3000/health || exit 1
9. Žádné volumes pro data¶
docker run -v pgdata:/var/lib/postgresql/data postgres:16
10. Žádné resource limity¶
docker run –memory=512m –cpus=1.0 myapp
Shrnutí¶
Respektujte best practices od začátku. Opravit špatné návyky je těžší než se je nenaučit.