DEV Community

Ayrton
Ayrton

Posted on

5 4

Comprendre Dockerfile #FR

Bonjour les apprentis dockeriste !
Si vous êtes la c'est que comme moi à un certain moment, vous avez décider d'en savoir plus sur ce fichier Dockerfile qui parait simple à la lecture mais pourtant... pas tant que cela.

Commençons avec la question bateau.

Qu'est-ce que le Dockerfile ?

C'est un petit bout de fichier de configuration qui vient donner à docker ce dont vous avez envie.

Par exemple;

Vous avez une super application en Node JS, vous souhaitez donc la mettre en production sur votre serveur qui accueille des containers dockers. Vous avez besoin de plusieurs chose :

  • Lancer une archi Linux,
  • Installer les dépendance npm de votre projet.
  • Lancer le build et exposer l'exécution du script sur le port 80

Dans ce cas le Dockerfile s'exécutera comme cela :

FROM debian:9
RUN apt-get update -yq \
&& apt-get install curl gnupg -yq \
&& curl -sL https://deb.nodesource.com/setup_10.x | bash \
&& apt-get install nodejs -yq \
&& apt-get clean -y

WORKDIR /app
COPY app/package*.json ./
RUN npm install
COPY app .

RUN npm run build

EXPOSE 80

CMD npm run start
Enter fullscreen mode Exit fullscreen mode

Lisons un peu ce bout de code

  • On utilise l'image de Debian 9
  • On execute la mise à jour des paquets et l'installation de node
  • On définie le repertoire de travail dans son dossier app
  • On lance l'installation des dépendances
  • On build
  • On expose sur le port 80
  • Et on lance notre application

ensuite on ajoute un fichier .dockerignore, il fonctionne comme un .gitignore, c'est à dire que l'on va ignorer certain fichier / dossier de notre projet
exemple :

.git
app/node_modules
Enter fullscreen mode Exit fullscreen mode

ensuite,
je vous conseil une architecture de vos projets comme ceci

root:
  Dockerfile
  app/
    node_modules
    src
    packages.json
    etc
Enter fullscreen mode Exit fullscreen mode

merci Xavier

allez-y tester avec la commande suivante :

docker build -t nomdevotreimage .
Enter fullscreen mode Exit fullscreen mode

youhouuu ! vous avez build votre premier Dockerfile félicitations !

Pour les feignasses
https://gitlab.com/Simerca/dockerfile-exemple

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post