Utiliser ENTRYPOINT dans le Dockerfile
Dans cette étape, nous allons apprendre à utiliser l'instruction ENTRYPOINT dans un Dockerfile et à utiliser un autre port (9100).
-
Dans WebIDE, ouvrez à nouveau le Dockerfile
.
-
Modifiez le contenu du Dockerfile
comme suit :
FROM nginx
ENV NGINX_PORT 9100
RUN sed -i "s/listen\s*80;/listen $NGINX_PORT;/g" /etc/nginx/conf.d/default.conf
COPY index.html /usr/share/nginx/html/
COPY start.sh /start.sh
RUN chmod +x /start.sh
ENTRYPOINT ["/start.sh"]
Ce Dockerfile définit NGINX_PORT
à 9100 et ajoute une instruction ENTRYPOINT
, qui spécifie la commande à exécuter lorsque le conteneur démarre.
- Créez un nouveau fichier nommé
start.sh
dans le même répertoire avec le contenu suivant :
#!/bin/bash
echo "Starting Nginx on port $NGINX_PORT"
nginx -g 'daemon off;'
Ce script affiche un message indiquant sur quel port Nginx va s'exécuter avant de démarrer Nginx.
-
Enregistrez les deux fichiers dans WebIDE.
-
Dans le terminal de WebIDE, reconstruisez l'image Docker avec une nouvelle étiquette :
docker build -t my-nginx-entrypoint.
- Exécutez un conteneur basé sur la nouvelle image :
docker run -d -p 9100:9100 -e NGINX_PORT=9100 --name entrypoint-container my-nginx-entrypoint
- Vérifiez les journaux du conteneur pour voir le message de démarrage :
docker logs entrypoint-container
Vous devriez voir le message "Starting Nginx on port 9100" dans la sortie.
- Vérifiez que le serveur web fonctionne correctement sur le nouveau port :
curl http://localhost:9100
Vous devriez voir le contenu HTML du fichier index.html
affiché dans le terminal.