Créer un Dockerfile
Exemple d'un Dockerfile
RUN
utilisez l'instruction RUN pour exécuter une commande dans votre conteneur.
Limitez au maximum le nombre d'instructions RUN , afin de limiter le nombre de layers créées, et donc de réduire la taille de notre image Docker.
EXPOSE
L'instruction EXPOSE permet d'indiquer le port sur lequel votre application écoute.
VOLUME
L'instruction VOLUME permet d'indiquer quel répertoire vous voulez partager avec votre host.
WORKDIR
Utilisez ensuite l'instruction WORKDIR qui permet de modifier le répertoire courant. La commande est équivalente à une commande cd en ligne de commande. L'ensemble des commandes qui suivront seront toutes exécutées depuis le répertoire défini.
ADD
utilisez l'instruction ADD afin de copier ou de télécharger des fichiers dans l'image. Dans notre cas, nous l'utilisons pour ajouter les sources de notre application locale dans le dossier /app/ de l'image.
FROM debian:910
WORKDIR /app
ADD . /app/
WORKDIR /app
RUN npm install EXPOSE 2368
VOLUME /app/logs
CMD&& npm run startbuild
EXPOSE 3000
VOLUME [/app/logs]
CMD ["npm", "run", "start"]
Construire le Dockerfile
docker build -t-tag ocr-docker-buildmonimage .
L'argument -t permet de donner un nom à votre image Docker. Cela permet de retrouver plus facilement votre image par la suite.
Le . est le répertoire où se trouve le Dockerfile ; dans notre cas, à la racine de notre projet.
Lancer la nouvelle image
docker run -d -p 2368:23683000:3000 ocr-docker-build-v /folder/logs:/app/logs --name moncontainer monimage
Vous retrouvez, dans le dossier logs , les logs de votre application, et vous pourrez y accéder sur le port , soit via l'URL http://127.0.0.1:2368.23683000
En résumé
Pour créer une image Docker, vous savez utiliser les instructions suivantes :
-
FROMqui vous permet de définir l'image source ; -
RUNqui vous permet d’exécuter des commandes dans votre conteneur ; -
ADDqui vous permet d'ajouter des fichiers dans votre conteneur ; -
WORKDIRqui vous permet de définir votre répertoire de travail ; -
EXPOSEqui permet de définir les ports d'écoute par défaut ; -
VOLUMEqui permet de définir les volumes utilisables ; -
CMDqui permet de définir la commande par défaut lors de l’exécution de vos conteneurs Docker.