Gitlab

Quick-start

Démarrer un projet de conteneurisation d'application en utilisant le workflow devops de Bearstech

Prérequis

Démarrer un projet

Voici l’exemple d’un “Hello World” minimal en NodeJS qui s’intégre dans le workflow devops de Bearstech.

1. Créer le projet dans Gitlab et le récupérer sur sa machine

git clone gitlab@gitlab.bearstech.com:<my-project>.git

2. Sources de l’application

Voici un “hello, world” en Javascript, chargé via le module http fourni par NodeJS. L’application est exposée sur le port 8080 et retourne un code 200 si tout va bien.

Créer un dossier “app” et enregistrer le fichier app.js avec le code ci-dessous :

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.end('Hello, World!');
}).listen(8080);

3. Définir le service dans un docker-compose

Pour cette démo, il n’y a pas besoin de builder une image Docker de l’application. Nous allons utiliser l’image Docker de base de NodeJS (version 18) fournie par Bearstech et qui contient suffisamment d’éléments pour instancier cette application simplissime.

L’accès aux sources du projet sera assuré au moyen d’un volume, défini dans le docker-compose.yml.

version: '3.6'

services:  
  app:
    image: bearstech/node-dev:18
    container_name: hello-workflow-node
    working_dir: /var/www    
    volumes:
      - ./app:/var/www
    ports:
      - "80:8080"
    expose:
      - "8080"      
    command: >
            bash -c "node app.js"

4. Tester l’application en local

  • La commande docker-compose va lancer le conteneur de l’application. Pour y accéder, ouvrir l’adresse http://localhost dans un navigateur.
docker compose up -d
  • Arrêter l’application
docker compose down

5. Déclencher le déploiement de l’application

Les étapes qui seront jouées sur le serveur d’intégration de Gitlab sont décrites dans un fichier .gitlab-ci.yml. Pour cet exemple, il n’y a besoin de définir qu’une seule étape pour le déploiement : le workflow va définir l’utilisateur autorisé à instancier l’application via le docker compose sur le serveur de destination.

---
default:
  image: bearstech/deploy
  tags:
    - docker

stages:
  - deploy

deploy-dev:
  stage: deploy
  environment:
    name: dev
  script:
    - deploy

6. Déclencher la pipeline dans Gitlab

L’envoi des fichiers vers Gitlab permet de déclencher le build et le déploiement automatique de l’application sur le serveur de CI

git add .
git commit -m "initial commit"
git push origin master
Top