Deploiement - Gestionnaire de packages

From air
Jump to navigation Jump to search

Page d'accueil du projet

Compositions docker

Tous les composants de notre application ont été publiés dans des images dockers produites automatiquement avec Travis-ci. Les Dockerfile sont donc disponible sur les dépôts git du projet et les images sont publié dans l'organisation Packebian sur Dockerhub .


Backend-controller

Le backend controller est une API composée de deux containers :

  • sails : L'application sails . Ce container est produit à partir de l'image packebian/backend-controller qui est construite à partir de ce Dockerfile
  • mongodb : La base de donnée de l'API. Ce containeur est produit à partir de ce fichier Dockerfile

docker-compose.yml

version: '2'

services:
# -------------------------------------------
# ------------------ Sails ------------------
# -------------------------------------------
    # sails container
    sails:
        image: packebian/backend-controller:stable
        tty: true
        ports:
            - "1337:1337"
        links:
            - "mongodb:mongodb"
        environment:
            # Sails
            SAILS_SECRET: "c9693b2d5572ffd96a79cae6a8453d57"
            # Mongo
            MONGO_HOST: "mongodb"
            MONGO_PORT: "27017"
            MONGO_DB: "packebian"
            MONGO_USER: "packebian"
            MONGO_PASS: "packebian123"
            # Auth0
            AUTH0_SECRET: "secret"
            AUTH0_ALGO: "HS256"
            AUTH0_ENDPOINT: "https://packebian.eu.auth0.com"
            # JWT
            JWT_SECRET: "secret"
            JWT_LIFE: 3600
            JWT_ALGO: "HS256"
            JWT_ISSUER: "packebian.com"
            JWT_AUDIENCE: "packebian.com"

# ----------------------------------------------
# ------------------ Database ------------------
# ----------------------------------------------
    # Mongodb
    mongodb:
        build: ./builds/mongo
        tty: true
        restart: always
        volumes:
            - "mongoVolume:/data/db"
        ports:
            - "27017:27017"
        environment:
            ADMIN_USER: "root"
            ADMIN_PASS: "mongdb123"
            MONGO_DB: "packebian"
            MONGO_USER: "packebian"
            MONGO_PASS: "packebian123"

volumes:
  mongoVolume:
      driver: local

L'image utilisée pour le container mongodb n'est pas publiée. Nous vous conseillons donc d'utiliser cette composition en partant de ce dépot github


Frontend

L'image de l'application Frontend Angular produit est créé à partir de ce Dockerfile

docker-compose.yml

version: '2'
 
services:
# -------------------------------------------
# ----------------- Angular -----------------
# -------------------------------------------
    # sails container
    frontend:
        image: packebian/frontend:stable
        tty: true
        ports:
            - "9000:9000"
            - "35729:35729"
        environment:
            API_URL: "http://192.168.99.100:1337" # URL to backend-controller API

Backend-builder

Le builder est lui aussi dans une image docker. Une simple commande dans un terminal permet de le lancer et de récupérer le package .deb dans un dossier. Voici quelques exemples de son utilisation :

builder-ant.sh

#!/bin/sh

docker run -ti -v $(pwd)/built-ant:/builder/built \
    packebian/backend-builder:0.2.1 \
    build \
    --repository=https://github.com/KingBabou/builder-ant.git \
    --package=builder-ant \
    --tag=1.0


builder-gradle.sh

#!/bin/sh

docker run -ti -v $(pwd)/built-gradle:/builder/built \
    packebian/backend-builder:0.2.1 \
    build \
    --repository=https://github.com/KingBabou/builder-gradle.git \
    --package=builder-gradle \
    --tag=1.0


builder-maven.sh

#!/bin/sh

docker run -ti -v $(pwd)/built-maven:/builder/built \
    packebian/backend-builder:0.2.1 \
    build \
    --repository=https://github.com/KingBabou/builder-maven.git \
    --package=builder-maven \
    --tag=1.0

builder-procesim.sh

#!/bin/sh

docker run -ti -v $(pwd)/built-procesim:/builder/built \
    packebian/backend-builder:0.2.1 \
    build \
    --repository=https://github.com/KingBabou/procesim.git \
    --package=procesim \
    --tag=1.0

builder-puissance4.sh

#!/bin/sh

docker run -ti -v $(pwd)/built-puissance4:/builder/built \
    packebian/backend-builder:0.2.1 \
    build \
    --repository=https://github.com/KingBabou/puissance4.git \
    --package=puissance4 \
    --tag=1.0