Quick-start
Démarrer un projet de conteneurisation d'application en utilisant le workflow devops de Bearstech
Sur cette page
Prérequis
- Git
- Docker
- docker-compose compatible avec le format de la version 3
- L’accès à un Gitlab infogéré par Bearstech
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