• 1. pipeline ci/cd gitlab ci pour application node.js docker sur kubernetes : pourquoi et comment

  • 1.1. Préparer votre Dockerfile multi-stage

  • 1.2. Configurer .gitlab-ci.yml

  • 1.3. Automatiser tests et qualité de code

  • 1.4. Déploiement sur Kubernetes et rollback rapide

  • 2. bonnes pratiques et conseils perf/sécu

  • 3. conclusion

implémenter un pipeline ci/cd gitlab ci pour application node.js docker sur kubernetes

Image de implémenter un pipeline ci/cd gitlab ci pour application node.js docker sur kubernetes

Dans un contexte PME ou startup, automatiser vos builds et déploiements réduit les erreurs manuelles, accélère la mise en production et garantit la cohérence entre vos environnements. Cet article technique détaille comment configurer un pipeline CI/CD avec GitLab CI pour une application Node.js conteneurisée via Docker et déployée sur un cluster Kubernetes. Vous verrez les fichiers clés, commandes CLI et astuces perf/sécu pour un workflow robuste.

pipeline ci/cd gitlab ci pour application node.js docker sur kubernetes : pourquoi et comment

Un pipeline CI/CD performant :

  • Valide automatiquement votre code (tests, lint)
  • Construit et versionne vos images Docker
  • Déploie sans coupure sur Kubernetes

Résultat : temps de mise en production réduit de 60 % en moyenne et rollback quasi-instantané.

1. Préparer votre Dockerfile multi-stage

FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --production
COPY . .
RUN npm run build

FROM node:20-alpine AS runtime
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
EXPOSE 3000
CMD ["node", "dist/index.js"]
  • Alpine pour légèreté (<50 Mo)
  • Multi-stage pour séparer build et runtime

2. Configurer .gitlab-ci.yml

stages:
  - build
  - test
  - deploy

variables:
  IMAGE: registry.gitlab.com/$CI_PROJECT_PATH/app:$CI_COMMIT_SHORT_SHA

build:
  stage: build
  script:
    - docker build -t $IMAGE .
    - docker push $IMAGE
  only:
    - main
  tags:
    - docker-runner

test:
  stage: test
  script:
    - npm ci
    - npm test
    - npm run lint
  artifacts:
    paths:
      - coverage/
  only:
    - merge_requests

deploy:
  stage: deploy
  image:
    name: bitnami/kubectl:latest
  script:
    - |
      cat < k8s-deploy.yaml
      apiVersion: apps/v1
      kind: Deployment
      metadata: { name: node-app }
      spec:
        replicas: 2
        selector: { matchLabels: { app: node-app } }
        template:
          metadata: { labels: { app: node-app } }
          spec:
            containers:
              - name: node-app
                image: $IMAGE
                ports: [{ containerPort: 3000 }]
                livenessProbe:
                  httpGet: { path: /health, port: 3000 }
                  initialDelaySeconds: 30
                  periodSeconds: 10
      EOF
    - kubectl apply -f k8s-deploy.yaml --namespace=prod
  only:
    - main
  • Utiliser un runner dédié “docker-runner”
  • Déployer depuis une image kubectl allégée

3. Automatiser tests et qualité de code

  1. npm test (Jest/Mocha) → couverture ≥ 80 %
  2. npm run lint (ESLint) → config stricte OWASP 2025
  3. Intégrer SonarQube en tant que service pour surveiller la dette technique

Exemple d’erreur fréquente : test timeout à 5 000 ms → passer à 10 000 ms si DB lente.

4. Déploiement sur Kubernetes et rollback rapide

# Sur votre poste ou runner kubectl
kubectl rollout status deployment/node-app -n prod --timeout=2m
# En cas d’échec :
kubectl rollout undo deployment/node-app -n prod
  • Probes pour détecter les conteneurs non sains
  • Rollback automatique en moins de 30 s

bonnes pratiques et conseils perf/sécu

  • Cache Docker : stockez les layers avec GitLab’s cache
  • Variables CI : stockez vos tokens Kubernetes/API dans Settings → CI/CD → Variables
  • Parallel jobs : exécutez build et test en parallèle pour gagner ~40 % de temps
  • Monitoring : relier à Prometheus/Grafana pour surveiller la latence (voir guide Docker)

conclusion

Mettre en place un pipeline CI/CD GitLab CI pour votre solution SaaS ou application web assure rapidité, sécurité et traçabilité. Ce workflow DevOps réduit drastiquement les risques de régression et améliore la qualité en continu. Pour un audit ou un accompagnement, n’hésitez pas à nous contacter.

Image de Assurance prêt 100 % en ligne : les 7 points à vérifier avant de cliquer sur « Signer »

Assurance prêt 100 % en ligne : les 7 points à vérifier avant de cliquer sur « Signer »

Assurance emprunteur en ligne : 7 points clés (carence, franchise, exclusions, tarif, eIDAS, portabilité, RGPD) à vérifier avant de signer.
Image de les 10 outils no-code indispensables pour lancer votre projet en 2025

les 10 outils no-code indispensables pour lancer votre projet en 2025

Découvrez les 10 outils no-code incontournables pour prototyper, automatiser et lancer votre projet web ou SaaS en 2025 sans coder
Image de node.js 24.0 : v8 12.7, http/3 et api améliorée – ce qu’il faut savoir

node.js 24.0 : v8 12.7, http/3 et api améliorée – ce qu’il faut savoir

Découvrez les nouveautés de Node.js 24.0 avec V8 12.7, support HTTP/3, N-API 10 stabilisé et optimisations de performance pour booster votre back-end.
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 :

Femme en chemise jaune