14 votes

Exécution d'un script bash avant le démarrage dans un conteneur docker NGINX

J'essaie d'exécuter une application javascript sur localhost:8000 en utilisant docker. Une partie de ce que je voudrais faire est de permuter certains fichiers de configuration basés sur la commande docker run, je voudrais passer une variable d'environnement dans le conteneur afin que le bash script puisse l'utiliser comme paramètre.

Voici à quoi ressemble mon fichier docker :

FROM nginx
COPY . /usr/share/nginx/html
CMD ["bash","/usr/share/nginx/html/runfile.sh"]

Et le script de bash ressemble à ça :

#!/bin/bash
if [ "$SECURITY_VERSION" = "OPENAM" ]; then
    sed -i -e 's/localhost/openam/g' authConfig.js
fi

docker run -p 8000:80 missioncontrol:latest -e SECURITY_VERSION="TEST"

Docker me donne une exception disant -e exec command not found.

Cependant, si je modifie le dockerfile pour utiliser ENTRYPOINT au lieu de CMD, le drapeau -e fonctionne mais le serveur web ne démarre pas.

Il y a quelque chose qui m'échappe ? Est-ce que le point d'entrée est remplacé ou quelque chose comme ça ?

EDIT :

J'ai donc mis à jour mon fichier docker pour utiliser ENTRYPOINT ["bash","/usr/share/nginx/html/runfile.sh", ";", " nginx -g daemon off;"]

Mais le conteneur docker s'arrête toujours. Y a-t-il quelque chose qui m'échappe ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X