Déjouer les pièges du Dockerfile

Slides:



Advertisements
Présentations similaires
Échanger connaissances et techniques sur les routes et le transport routier 1 The PIARC Website.
Advertisements

Why? Extended language Sentence level work Cultural Find out new language Stimulus for creativity Reinforce everything children do in English Fun for.
Smoking a regular verb cigar: the –er version The keys to putting together what you want to say!
9e Année - Français Cadre
Starter Fill in the gaps with the right words from the bottom:
TortoiseSVN N°. Subversion : pour quoi faire ? Avoir un espace de stockage commun – Tous les étudiants du SIGLIS ont un espace svn commun Partager vos.
Les choses que j aime Learning Objective: To know how to use j aime to talk about things I like to do.
BBoard Fonctionne pas. BBoard Copier le répertoire dézippé dans le répertoire modules de post nuke Renommer ce répertoire en yabbse. Entrer le chemin.
Cest mercredi le neuf octobre Le plan! 1.Révisions 2.Vocabulaire 3.Jouer 4.Ecouter 5.Parler Il fait beau! Le but! Les couleurs!
To be able to say what I think about different jobs for level 3.
Les pronoms interrogatifs. Step 1: avec des prépositions  If the expression requires a preposition, the choices of pronouns differ  Common prepositions:
Mercredi, le 1 octobre Do the warm-up worksheet. You may use your notes from last class. Get out a sheet of notebook paper and label it “La famille”
C’est combien ? Les euros
Pile-Face 1. Parlez en français! (Full sentences) 2. One person should not dominate the conversation 3. Speak the entire time The goal: Practice! Get better.
Flash-on-flash-off! You will see some French text in a minute but it will only be on the board for a minute then it will disappear.
Français 10/12/15 Ouvrez vos livres á la page 40. Faites #6. Two flies are on a porch: which one is the actor? Se dépêcher – to hurry. Dépêche – toi. Hurry.
French 2 Grammar 2 Chapter 5.  All reflexive verbs only use ETRE as a helping verb in the past  Using être means that all verbs MUST agree with the.
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
PERFORMANCE One important issue in networking is the performance of the network—how good is it? We discuss quality of service, an overall measurement.
QUEL CADEAU! YOU HAVE BEEN OF GREAT SERVICE TO FRANCE. PRESIDENT HOLLANDE IS VERY GRATEFUL TO YOU! KNOWING OF YOUR INTEREST IN EGYPTOLOGY, THE DIRECTOR.
Méthodes d’utilisabilité pour les nuls Alain Désilets National Research Council of Canada.
A POWER POINT DEMONSTRATION. The End. Just kidding! This is serious stuff.
Overview of SUN’s Unix Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Introduction to Solaris 10.
Les Vêtements clothes.
Objective: To be able to talk about what you would like to do for a living using je voudrais + infinitive “je voudrais faire…”
Vocabulaire electronique
AP Examen Pratique commentaires
Connecting with language pupils in the UK
Téléchargement IOS - Commande tftpdnld du ROM Monitor
Mon enfance Quand tu étais petit, tu étais comment?
Français 1/4/16 Ecrivez douze phrases: Trois choses que vous aimez; trois choses que vous n’aimez pas; trois choses ques vous avez; trois choses que vous.
Chapter 6- the verb ‘to go’ question words places time
Internet – s 3 choses à toujours garder en tête concernant internet:
Français 10/9/17 Ecrivez 8 phrases avec les six forms d’aimer.
Objectifs: To revise telling the time in French
GDPR – Data Portability
Prise en main Emmanuel Braux Institut Mines Telecom / Télécom Bretagne
Jupyter notebook in Galaxy
in French and in English
Essai
Bienvenue aux eleves de National 5
Introduction à la démarche DevOps
Vendredi le 2 Mars Districts
Introductory slide to see what pupils remember.
L’objectif: to know the words for school subjects in French.
Introductory slide to see what pupils remember.
Français Les animaux (2).
Quelle est la date aujourd’hui?
1-1 Introduction to ArcGIS Introductions Who are you? Any GIS background? What do you want to get out of the class?
Vulnerability Analysis by : Wail Belhouchet Dr Djouad Tarek 1.
Wednesday December 13th, 2017 Module 2/Lesson 5 Parents and Education.
sortir avec mes copains faire les magasins jouer à des vidéo
Question formation In English, you can change a statement into a question by adding a helping verb (auxiliary): does he sing? do we sing? did they sing.
J’ai mal !!!!! FINAL REVIEW.
What’s the weather like?
IMPORTANT JULY 31st THE START OF SEAL COATING TO LAST DAYS. LOOK FOR UPDATES AT THE GATE AND NOTICES ON CARS WHEN YOUR AREA WILL BE CLOSED.
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
les instructions Bonjour la classe, sortez vos affaires
5S Methodology How to implement "5S" and get extraordinary results.
Dans ma Salle de classe
Avoiding the Pitfalls of Bad Slides Tips to be Covered Outlines Slide Structure Fonts Colour Background Graphs Spelling and Grammar Conclusions Questions.
Jour 18 MOT DE PASSE: se débarrasser de… - to get rid of...
Jour 16 MOT DE PASSE: se garder de - to avoid, be careful not to
Lequel The Last Part.
Vouloir, Pouvoir, Être.
Chapter 6- the verb ‘to go’ question words places time
Starter.
Sauter dans les nuages …
J’écris à mon correspondent
Jour 21 MOT DE PASSE: Déranger - to disturb, bother
Transcription de la présentation:

Déjouer les pièges du Dockerfile Nicolas CARPi − UMR144 Institut Curie / CNRS Team of Matthieu Piel

Attention ! Cette présentation est en franglais ! Pardon les puristes…

Qui suis-je ? Ingénieur à l'Institut Curie Biochimiste de formation Biologiste cellulaire de métier Développeur d'eLabFTW : le cahier de labo électronique open-source pour la Recherche https://www.elabftw.net

La galaxie elab elabftw

La galaxie elab elabctl elabimg elabget elabftw elabdoc elabapy install/update/backup script elabimg Dockerfile repo elabget get.elabftw.net elabftw elabdoc Documentation elabapy Python lib for API access elabrls To make a new release elabweb www.elabftw.net

La galaxie elab elabctl elabimg elabget elabftw elabdoc elabapy install/update/backup script elabimg Dockerfile repo elabget get.elabftw.net elabftw elabdoc Documentation elabapy Python lib for API access elabrls To make a new release elabweb www.elabftw.net

On met quoi dans un container ? Une préoccupation par container mais on peut tricher (php + nginx ça passe) Un seul process par container mais on peut tricher (supervisord)

Les principes de base Minimiser le nombre de couches && est votre ami Enlever ce qui ne servira pas rm -rf /var/lib/apt/lists --no-install-recommends pour apt Utiliser les bonnes images de base

Utilisez les bonnes images Il n'y a pas que Ubuntu dans la vie : Alpine linux (1.9 Mo) Busybox (1~5 Mo) Scratch Les images de base pour certains languages : Python, ruby, PHP, … Les images pour les services : Mysql, nginx, redis, rabbitmq, …

Mise en pratique FROM ubuntu COPY ./code /app RUN apt-get update RUN apt-get install -y python git ssh python-pip CMD python /app/app.py

Mise en pratique Fix version in FROM FROM ubuntu:16.04 COPY ./code /app RUN apt-get update RUN apt-get install -y python git ssh python-pip CMD python /app/app.py Fix version in FROM

Mise en pratique Be smart about caching FROM ubuntu:16.04 COPY ./code /app RUN apt-get update RUN apt-get install -y python git ssh python-pip CMD python /app/app.py Be smart about caching

Group related commands Mise en pratique FROM ubuntu:16.04 COPY ./code /app RUN apt-get update && apt-get install -y python git ssh python-pip CMD python /app/app.py Group related commands

Mise en pratique Use correct base image FROM python:3.4 COPY ./code /app RUN apt-get update && apt-get install -y python git ssh python-pip CMD python /app/app.py Use correct base image

Use docker exec if you want to go inside a container Mise en pratique FROM python:3.4 COPY ./code /app RUN apt-get update && apt-get install -y python git ssh python-pip CMD python /app/app.py Use docker exec if you want to go inside a container

Mise en pratique Cleanup! FROM python:3.4 COPY ./code /app RUN apt-get update && apt-get install -y git \ && rm -rf /var/lib/apt/lists* CMD python /app/app.py Cleanup!

Propagation du signal docker stop => envoie un SIGTERM, puis 10 secondes plus tard un SIGKILL

CMD, ENTRYPOINT and pid 1 Your process should be pid 1 Use ENTRYPOINT and CMD for binary like behavior (CMD is the default arg to ENTRYPOINT (--help)) CMD will use /bin/sh -c <= pas de propagation du signal better to use array syntax: CMD [“/run.sh”]

Good things to do Use Read Only filesystem Drop unused capabilities (audit_write, mknod, sys_chroot, setfcap, net_raw, …) Do not use the root user (use USER) Use labels

The startup script /run.sh: change configuration files based on ENV start services with supervisord Note : les secrets dans ENV c'est pas top ENV variables show up in docker inspect Et aussi pour tous les autres process Donc une fois que je les ai utilisées je les unset

Git things Use .dockerignore (.git .gitignore) Use a separate repo from the main one Use hub.docker.com for automated builds Use online tools to inspect layers (microbadger.com)

Les secrets On parle de quoi ? API key Database user/password Une solution possible : https://www.vaultproject.io/ https://square.github.io/keywhiz/

Ayénafini