VSO et Build Docker

Prérequis

  • Serveur Docker DC/OS, swarm, Kubernetes ou docker machine
  • Partie 1

Extension docker

Docker Extension

Vous devez installer cette extension au niveau du Visual Studio Online, elle permet de gérer les build docker (build, pull, push)

Registry docker

Hub Docker

Il est possible d’ouvrir un compte sur le hub docker pour pousser vos build

Vous ne disposez que d’un repository privé sur le hub le supplément étant payant

Il est possible d’utiliser un repository privé, Microsoft posséde une preview dans Azure

Registry

Ce cas est le mieux adapté aux besoins d’une entreprise

Il est aussi possible de faire ceci grâce à Artifactory

Repository

On va commencer par créer un nouveau repository dans VSO

Repo

Puis on le clone en local

Git clone

Ensuite nous ajoutons la structure suivante

Structure

Dockerfile

Notre Dockerfile héritera directement de l’image NGINX en version ALPINE (plus petite)

FROM nginx:stable-alpine
COPY example /usr/share/nginx/html

On envoi le tout sur notre git distant « git add / git commit / git push »

Services

On commence par ajouter un nouveau service TFS pour générer le lien vers votre docker Registry

Service

Docker hub

Build

On ajoute une build à notre repository

Empty build

Build branch

Notre build est donc vide à l’arrivée, nous allons donc ajouter deux étapes pour créer une image docker et la pousser votre le registry

Créer une image

On commence par rajouter la première étape pour générer l’image

Build step

Avec les paramètres suivants

Build parameters

J’ajoute volontairement le tag « latest » car ma build étant sur la branche master lorsque je vais déployer celle-ci elle correspondra donc à la dernière version de production

Pousser une image

On commence par rajouter une deuxième étape pour pousser l’image

Build step

Avec les paramètres suivants

Build parameters

Tout comme la première étape je reprends exactement les mêmes paramètres

Choisir l’agent

Il est important de choisir l’agent de build créé en partie 1 pour exécuter nos tâches

Agent

Lancer la build

Si tout est bien configuré la build passe rapidement du fait de sa petite taille

Build

Vérifier la présence de l’image

L’image est désormais disponible sur le hub docker pour ma part

Build hub

On retrouve la version latest ainsi que la build tagguée par son numéro de build

Références

Docker Extension