• # Oui ?

    Posté par (site web personnel) . En réponse au message Empaqueter une appli dans docker. Évalué à 6.

    Est-ce possible d'installer une base de ubuntu 16.04 puis toutes les dépendances et ainsi compiler le prgramme dans l'environnement ubuntu-docker, pour finalement en faire une image docker que l'on pourrait distribuer et ainsi figer le soft ?

    Sur le principe, oui c'est bien le genre de choses qu'on fait avec Docker. En gros tu vas faire un Dockerfile qui ressemble à :

     FROM ubuntu:xenial
     MAINTAINER Toi <ton.mail@example.com>
     RUN apt-get update -q && apt-get install -qy \
     les \
     dependances \
     de ton \
     outil
     RUN script-d-install.sh
    

    et lancer docker build dessus.

    Après, la difficulté est de faire communiquer ton conteneur avec le reste du monde. Y'a plusieurs options :

    • Le classique chez les utilisateurs de Docker: ton appli est une appli web, tu lui parles par le réseau.

    • Les volumes Docker, i.e. un répertoire partagé entre la machine hote et le conteneur. Ça peut s'activer par exemple avec docker run -v /repertoire/local:/point/de/montage/dans/le/conteneur. Un bel exemple est là : https://github.com/blang/latex-docker, c'est une image qui contient une install latex et qui permet de compiler du code sur le host en utilisant un pdflatex dans le conteneur.

    Un gros défaut de Docker pour distribuer un outil comme ça : la personne qui lance l'outil doit grosso-modo être root pour pouvoir l'exécuter. L'application s'exécute dans un conteneur, mais le lancement demande au moins d'être dans le groupe docker (et quelqu'un qui est dans le groupe docker peut facilement passer root).