• 1. pipeline ci/cd docker kubernetes avec gitlab ci : configuration du dépôt

  • 1.1. Exemple de Dockerfile

  • 1.2. Exemple de .gitlab-ci.yml

  • 2. déploiement sur kubernetes : manifest et commandes

  • 2.1. mesure des performances et sécurité

  • 3. bonnes pratiques pour un pipeline fiable

  • 4. conclusion

pipeline ci/cd docker kubernetes avec gitlab ci pour vos applications web

Image de pipeline ci/cd docker kubernetes avec gitlab ci pour vos applications web

Dans un contexte où la rapidité de livraison et la stabilité de vos applications web sont cruciales, mettre en place un pipeline CI/CD robuste s’impose. Ce guide technique montre pas à pas comment automatiser la construction d’images Docker, leur publication et leur déploiement sur un cluster Kubernetes en utilisant GitLab CI. Idéal pour les équipes DevOps et les CTO de startups ou PME cherchant à industrialiser leurs releases.

pipeline ci/cd docker kubernetes avec gitlab ci : configuration du dépôt

Commencez par versionner votre code dans un projet GitLab. Ajoutez :

  • Un Dockerfile à la racine pour construire l’image de votre application.
  • Un fichier .gitlab-ci.yml pour décrire les étapes du pipeline.

Exemple de Dockerfile

FROM node:18-alpine
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm ci --production
COPY . .
CMD ["node", "server.js"]

Ce Dockerfile minimaliste (taille ≃ 70 Mo) assure une rapidité de build et une empreinte réduite.

Exemple de .gitlab-ci.yml

stages:
  - build
  - test
  - publish
  - deploy

variables:
  IMAGE_NAME: registry.gitlab.com/mon-projet/app
  KUBE_NAMESPACE: production

build:
  stage: build
  script:
    - docker build -t $IMAGE_NAME:$CI_COMMIT_SHA .
    - docker images
  tags:
    - docker

test:
  stage: test
  script:
    - npm test
  tags:
    - shell

publish:
  stage: publish
  script:
    - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin $CI_REGISTRY
    - docker push $IMAGE_NAME:$CI_COMMIT_SHA
  only:
    - main

deploy:
  stage: deploy
  image:
    name: bitnami/kubectl:latest
    entrypoint: [""]
  script:
    - kubectl set image deployment/app app=$IMAGE_NAME:$CI_COMMIT_SHA -n $KUBE_NAMESPACE
    - kubectl rollout status deployment/app -n $KUBE_NAMESPACE
  only:
    - main

Ce pipeline couvre la construction, les tests unitaires, la publication sur le registry et le déploiement automatique.

déploiement sur kubernetes : manifest et commandes

Créez un fichier deployment.yaml :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: app
  template:
    metadata:
      labels:
        app: app
    spec:
      containers:
        - name: app
          image: registry.gitlab.com/mon-projet/app:latest
          ports:
            - containerPort: 3000

Pour déployer manuellement ou en debug :

kubectl apply -f deployment.yaml -n production
kubectl get pods -n production
kubectl logs pod/app-abcde -n production

mesure des performances et sécurité

  • Temps moyen de build Docker : ~45 s (avec Docker v24 et cache activé).
  • Scan d’image avec trivy : trivy image registry.gitlab.com/mon-projet/app:latest.
  • Rollout time moyen : ~30 s pour 3 pods.

bonnes pratiques pour un pipeline fiable

  • Utiliser des runners GitLab dédiés et isolés, idéalement sur des hôtes Linux optimisés (novane.io/technologies/linux).
  • Verrouiller les versions de base d’image (ex. node:18-alpine) pour éviter les surprises de mises à jour.
  • Coupler un scanner de vulnérabilités (Trivy, Clair) dans l’étape publish.
  • Mettre en place des variables CI/CD protégées pour vos credentials Docker Registry et votre cluster.
  • Privilégier les déploiements progressifs (rolling update ou canary) pour minimiser les risques.

conclusion

Un pipeline CI/CD avec Docker, GitLab CI et Kubernetes garantit des déploiements rapides, fiables et reproductibles. En automatisant chaque étape, vous réduisez les erreurs humaines et augmentez la fréquence de vos mises en production. Pour aller plus loin et bénéficier d’un accompagnement DevOps sur mesure, découvrez nos solutions chez Novane, notamment l’augmentation d’effectif tech et l’intégration Docker.

Vous avez un projet CI/CD à lancer ? Contactez nos experts pour un audit offert.

Image de les 10 erreurs à éviter pour votre site e-commerce en 2025

les 10 erreurs à éviter pour votre site e-commerce en 2025

Découvrez les 10 pièges qui freinent votre site e-commerce en 2025 et apprenez à optimiser mobile, SEO et sécurité pour maximiser vos ventes.
Image de dataiku lève 200 M$ en série F pour renforcer son IA d’entreprise

dataiku lève 200 M$ en série F pour renforcer son IA d’entreprise

Dataiku lève 200 M$ en série F pour renforcer son IA d’entreprise cloud-native, accélérer l’automatisation des modèles et soutenir PME et ETI
Image de intégrer l’API OpenAI GPT-4 dans une application Node.js : guide technique

intégrer l’API OpenAI GPT-4 dans une application Node.js : guide technique

Guide pas à pas pour intégrer l’API OpenAI GPT-4 dans votre app Node.js, gérer erreurs, optimiser coûts et performances et déployer en production
DEVIS GRATUIT

Un projet en tête ? Vous avez des questions ?

Contactez nous pour recevoir un devis gratuitement, des réponses à vos questions ou une séance de consulting offerte avec l'un de nos experts :

Nous contacter