⌚
DevOps
  • DevOps
  • Introduction
    • Introduction
  • Le Cloud
    • Pourquoi cloud ?
    • Types de services cloud
    • Avantages et inconvénients
    • Fournisseurs cloud
  • Architecture
    • Introduction
    • Machines virtuelles
    • Volumes
    • Réseau
    • Kubernetes
  • Déploiement avec K8s
    • Projet local
    • Docker Hub
    • K8s
  • CI
    • Introduction
    • Tests unitaires
    • Tests d'intégration
    • Tests e2e
    • Continuous integration
  • CD
    • Continuous deployment
  • Evaluation
    • Evaluation
Propulsé par GitBook
Sur cette page
  1. Déploiement avec K8s

Projet local

PrécédentKubernetesSuivantDocker Hub

Mis à jour il y a 5 mois

CtrlK

Nous allons travailler avec un projet NodeJS, contenant la base d'un API. Vous trouverez le projet ici :

devops-sample-main.zip

Téléchargez, décompressez, et ouvrez le projet dans VSCode, et relancez votre projet dans un Dev Container (avec Docker). Suivez les instructions dans le README.md afin de lancer une version fonctionnelle de l'api.

Lancez votre api en local :

npm install

npm run server

Vous saurez si tout fonctionne correctement si vous arrivez à consulter le chemin d'information à http://localhost:5055/info dans un navigateur web.

curl http://127.0.0.1:5055/info

# Resultat :
{"title":"DevOps Code Samples API","host":"4c320d7f5a06","platform":"linux","type":"Linux"}

Jetez un coup d'œil au fichier docker-compose.dev.yml. Il s'agit de l'environnement de développement qui crée deux conteneurs, un pour VSCode (basé sur l'image node:20), et un autre pour faire tourner une base de données MariaDB.

services:
  vscode_devops_api:
    image: rg.fr-par.scw.cloud/devops-code-samples-vscode/vscode_devops:2.0.1
    command: /bin/bash -c "while sleep 1000; do :; done"
    working_dir: /home/dev
    networks:
      - api-devops-network
    volumes:
      - ./:/home/dev:cached
    labels:
      api_logging: "true"      
    
  dbms:
    image: mariadb
    restart: always
    ports:
      - "3379:3306"
    environment: 
      - MYSQL_ALLOW_EMPTY_PASSWORD=false
      - MYSQL_ROOT_PASSWORD=rootpassword
    command: [
      "--character-set-server=utf8mb4",
      "--collation-server=utf8mb4_unicode_ci",
    ]
    volumes:
      - ./.data:/var/lib/mysql
    networks:
      - api-devops-network

networks:
  api-devops-network:
    driver: bridge
    name: api-devops-network

Nous allons construire une image Docker similaire à vscode_devops_api que nous allons déployer dans un cluster Kubernetes !

Si vous avez suivi le cours API, vous avez déployé manuellement votre application en local, en mettant en marche un Container Docker.