J'ai un Dockerfile
qui est destiné à utiliser script1
comme suit :
# Pull from Debian
FROM debian
# Update apt and install dependencies
RUN apt update
RUN apt -y upgrade
RUN apt -y install wget curl
# Download script1.sh
RUN wget -O ./script1.sh https://example.com
# Make script1.sh executable
RUN chmod +x ./script1.sh
Actuellement, je peux :
- Construire ce fichier Docker dans une image
- Exécuter cette image dans un conteneur
- Ouvrez un CLI dans ce conteneur et exécutez
script1
manuellement (avecbash ./script1.sh
) - Le script s'exécute et le conteneur reste ouvert.
Cependant, j'aimerais exécuter automatiquement ce script au démarrage du conteneur.
J'ai donc essayé de changer mon Dockerfile
à cela :
# Pull from Debian
FROM debian
# Update apt and install dependencies
RUN apt update
RUN apt -y upgrade
RUN apt -y install wget curl
# Download script1.sh
RUN wget -O ./script1.sh https://example.com
# Make script1.sh executable
RUN chmod +x ./script1.sh
# Run script1.sh on startup
CMD bash ./script1.sh
Cependant, lorsque je fais cela, le conteneur ne reste ouvert que quelques instants, puis se referme immédiatement.
Je soupçonne qu'il se retire dès que script1
est fait...
J'ai également essayé ENTRYPOINT
sans grand succès.
Pourquoi mon conteneur reste-t-il ouvert si j'ouvre un CLI et exécute le script manuellement, mais ne reste pas ouvert si j'essaie de l'exécuter automatiquement au démarrage ?
Et comment puis-je exécuter le script automatiquement au démarrage du conteneur, et empêcher le conteneur de sortir immédiatement ?