4. @smanciot#DockerAnsible
Docker - Pourquoi ?
• Portabilité
• Construction rapide d'images pouvant être partagées
(Dockerfile, docker-registry …)
• Performance :
• les avantages d'uneVM (isolation des processus, interface
réseau, ...) …
• … sans les inconvénients (processus exécutés au sein de
l'hôte, pas d'émulation de périphérique)
• Séparation des rôles
5. @smanciot#DockerAnsible
# Pull base image.
FROM mogobiz/busybox-oracle-java{{java_version}}
ENV MOGOBIZ_HOME /mogobiz
ENV JVM_OPT -Xmx1024M -XX:MaxPermSize=1024m
# Install mogobiz-admin.
ADD mogobiz-admin.jar /mogobiz/lib/mogobiz-admin.jar
# COPY ADMIN SQL SCRIPTS
RUN mkdir -p /data/sql/lib
COPY sql/sqlInstall.jar /data/sql/
COPY sql/sqlinstall.properties /data/sql/
COPY sql/lib/* /data/sql/lib/
COPY sql/{{tag}}.sh /data/sql/
RUN chmod +x /data/sql/{{tag}}.sh
ADD run.sh /run.sh
RUN chmod +x /*.sh
# Define mountable directories.
VOLUME ["/mogobiz/impex", "/mogobiz/logs", "/mogobiz/data", "/mogobiz/config", "/mogobiz/import", "/mogobiz/sql"]
# Expose ports.
EXPOSE 18080
# Define default command.
CMD /data/sql/{{tag}}.sh && /run.sh
Packaging - Dockerfile
image de base
variables d’environnement
copie de fichiers
exécution de commandes
points de montage
exposition de port(s)
commande par défaut