Existe-t-il un moyen d'installer des packages de nœuds dans un environnement docker en cours d'exécution sans redémarrer?
J'ai exécuté quelques conteneurs via docker-compose et je dois utiliser npm i
pendant que les conteneurs sont en cours d'exécution.
Jusqu'à présent, je n'ai trouvé aucune réponse cohérente à Google.
3 Réponses :
Vous pouvez exécuter n'importe quelle commande dans un conteneur actif en utilisant docker exec
. Dans votre cas, ce sera:
// Replace <your-container-id> and <your-package-name> docker exec -it $(docker ps | grep <your-container-name> | awk '{ print $1 }') "npm install <your-package-name>"
ou si vous souhaitez utiliser un nom de conteneur au lieu d'un identifiant de conteneur vous pouvez utiliser:
// Replace <your-container-id> and <your-package-name> docker exec -it <your-container-id> "npm install <your-package-name>"
Ici vous avez plus d'informations sur le docker exec docker exec commande. (Docker Docs)
Cela ne fonctionne pas pour moi car j'obtiens: Echec de l'exécution OCI: Echec de l'exec: container_linux.go: 349: le démarrage du processus de conteneur a provoqué "exec: \" npm install node-red-contrib-env \ ": fichier exécutable introuvable dans $ PATH ": inconnu
docker exec -it [container-id] /bin/bash cd to the workspace and npm install packagename . Should install the package you want and also add it in package.json
Utilisez docker exec
+ npm install
.
https://docs.docker.com/engine/reference/commandline/exec/ < / a>