Le projet · plus de 12 machines

Cheatsheet · le grand oeuvre, en équipe Semaines 11 à 15 · Module 3
évolutif

Anatomie d'un Dockerfile

FROM alpine:3.18 ENV PORT=8080 WORKDIR /app

La base, les variables, le répertoire de travail.

RUN apk add --no-color python3 py3-pip COPY . /app

RUN exécute à la construction; COPY embarque le code.

EXPOSE 8080 CMD ["python3", "app.py"]

Le port annoncé, et la commande de démarrage (remplaçable au run, contrairement à ENTRYPOINT).

Le hardening des conteneurs

USER 1000:1000

Jamais root dans le conteneur : un usager sans pouvoir.

docker run --read-only --tmpfs /tmp -d mon-app

Système de fichiers en lecture seule, l'écriture confinée à /tmp.

docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE -d mon-app

Retirer toutes les capacités, ne rendre que le strict nécessaire.

Le crash-test CI/CD

docker-compose -f docker-compose.test.yml -p ci up -d

L'environnement de test éphémère se lève tout seul.

docker logs -f ci_sut_1 docker wait ci_sut_1

Suivre le système sous test; docker wait rend son code de sortie : 0 = la suite passe.

Les calques et le cache

Chaque instruction du Dockerfile crée un calque mis en cache : les lignes qui changent souvent vont à la fin, les builds redeviennent instantanés.

Montage : des clones headless de votre VM, préparés une fois, déployés onze fois.

Swarm ou Kubernetes ?

Swarm : simple, intégré à Docker, parfait pour la haute disponibilité du projet. Kubernetes : l'orchestrateur des très grandes flottes, plus riche et plus lourd. Le cours vous donne les concepts des deux; le projet se gagne avec Swarm, l'IP virtuelle assure la résilience réseau, et les vagues d'attaques (DDoS simulé) testent le hardening.

Le Dockerfile type du projet

FROM alpine:3.18 ENV PORT=8080 WORKDIR /app RUN apk add --no-color python3 py3-pip COPY . /app EXPOSE 8080 CMD ["python3", "app.py"]
FROM : l'image de base, la plus légère possible RUN : construit un calque (mis en cache) COPY : le code entre dans l'image EXPOSE : le port que le service annonce CMD : la commande de démarrage, remplaçable

Écrire ses propres Dockerfiles, durcir ses conteneurs, prouver la résilience par le crash-test : plus de 12 machines, deux étages doublés, et une démonstration devant jury en semaine 15.

Dockerfile : la recette écrite de vos propres images. Calque : une couche d'image, mise en cache au build. Hardening : retirer au conteneur tout pouvoir inutile. CI/CD : la chaîne qui teste et livre automatiquement. Crash-test : éteindre en direct et prouver que ça tient. Les 9 : 99.9 %, 99.99 % : la mesure de la disponibilité.

420-5A4-MT · Serveurs évolutifs · cliquer une commande la copie