• Home
  • Nous contacter

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab

Le blog d'Adfab
DevOps Outils

GitLab [4/6] : CI/CD Docker and Registry

Suite de notre série sur GitLab avec ce quatrième épisode.

  • Part 1 : Git clone
  • Part 2 : CI/CD Build
  • Part 3 : CI/CD Test coverage
  • Part 4 : CI/CD Docker and Registry
  • Part 5 : CI/CD Go prod
  • Part 6 : Gitlab Runner

Pour la suite de notre déploiement, nous devons créer une image docker et la charger sur le registry de GitLab.

Tout d’abord créez un fichier docker-compose.yml :

touch docker-compose.yml && vi docker-compose.yml

 

version: "2"
  services:
  app:
  build:
    context: .
    dockerfile: Dockerfile
    image: registry.gitlab.com/nlabbe/gitlab-workshop
  ports:
    - 5000:5000

 

Celle-ci comprend :

  • Construction de l’image docker a partir du fichier ./Dockerfile
  • Indication du repo d’image gitlab registry.gitlab.com/nlabbe/gitlab-workshop
  • Ouverture du ports 5000 sur la machine docker et sur le local

Ensuite il nous faut créer notre image docker dans le fichier Dockerfile :

touch Dockerfile && vi Dockerfile

Rien de très compliqué 😉 :

FROM node:latest

RUN mkdir -p /var/www/html
WORKDIR /var/www/html
COPY . .

RUN npm i
RUN npm run build
RUN npm i serve -g

CMD ["serve", "-s", "build"]

Les instructions restent simples :

  • Téléchargement de la dernière version de l’image node sur le repo docker
  • Création du dossier html dans l’image docker et copie de tout les fichier du projet dans ce dossier
  • Lancement de npm install et npm build et installation du module npm serve
  • Utilisation de serve pour lancer un serveur HTTP sur le dossier build

Pour finir nous allons rajouter le build de cette image docker au déploiement.

Mais d’abord il nous faut récupérer notre jeton d’accès gitlab a générer dans les setting.

Par exemple eHMnGUKVhikh1uEAjMpr

vi .gitlab-ci.yml

 

stages:
  - build
  - test
  - docker

# ...

docker:
  stage: docker
  image: docker:latest
  services:
    - docker:dind
  script:
    - apk add --update py-pip && pip install docker-compose
    - docker login -u gitlab-ci-token -p "eHMnGUKVhikh1uEAjMpr" "registry.gitlab.com"
    - docker-compose build
    - docker push "registry.gitlab.com/nlabbe/gitlab-workshop"

Le nouveau stage comprend :

  • Installation d’une image docker avec le service docker:dind
  • Installation de module complémentaire pour lancer le build de l’image
  • Lancement de docker-compose build pour builder l’image
  • Lancement de docker push pour pousser l’image sur le repo GitLab

Enfin commitez le tout :

git add . && git commit -m "docker stage" && git push origin master

Votre pipeline devrait maintenant s’afficher avec un nouveau stage :

et l’image devrait être accessible sur l’onglet Registry.

Bonus

Voici comment installer l’image depuis le repo sur son poste en local :

docker run -p "5000:5000" registry.gitlab.com/nlabbe/gitlab-workshop

Rendez-vous sur votre http://localhost:3000/ pour voir le résultat.

Next episode : go prod !

06/04/2018 4 MIN READ TAGS: GitLab BY: Nicolas LABBE 0 COMMENT
SHARE
LIRE LA SUITE

Nicolas LABBE

Si c’est stupide mais que ça marche, ce n’est pas stupide.

GitLab [3/6] : CI/CD Test coverage

GitLab [5/6] : CI/CD Go prod

VOUS POURRIEZ AIMER

Design Développement Frontend Outils Entre design et développement frontend [2/2]

Outils Radar des Technologies ThoughtWorks : Janvier 2014

DevOps Outils GitLab [1/6] : Git clone

Outils Compte rendu du Velocity Europe 2013 – Jour 1

DevOps Utiliser un linter shell avec Shellcheck

Outils Addy Osmani : Tooling for the modern webapp developper

A propos d’Adfab

Nous sommes un studio de production digitales et d’innovation digitales au service des agences et des annonceurs
Nous recherchons le scintillement dans les regards et le plaisir de réalisations sur-performantes
Nous sommes techno-agnostiques
Nous sommes Adfab

Le blog d'Adfab
Copyright © 2018 Adfab Connect