Je dois exécuter une application à partir d'un répertoire spécifique.
$ sudo docker run -P ubuntu/decomposer 'cd /local/deploy/decomposer; ./decomposer-4-15-2014'
2014/10/09 21:30:03 exec: "cd /local/deploy/decomposer; ./decomposer-4-15-2014": stat cd /local/deploy/decomposer; ./decomposer-4-15-2014: no such file or directory
Ce répertoire existe définitivement, et si je me connecte à docker en exécutant bash de manière interactive, je peux exécuter la commande ci-dessus.
$ sudo docker run -i -t ubuntu/decomposer /bin/bash
# cd /local/deploy/decomposer; ./decomposer-4-15-2014
Je peux exécuter mon programme en spécifiant le chemin complet, mais il se bloque alors qu'il s'attend à être lancé à partir du répertoire actuel. Que puis-je faire?
/bin/sh -c
toute façon.Vous pouvez utiliser l'
-w
option pour changer votre répertoire de travail.Donc, dans votre cas, vous courriez:
la source
-w
avecdocker exec
? Je cherche un moyen d'exécuter un script python dans mon conteneur, mais je ne peux pas l'arrêter en dehors du conteneur.flag provided but not defined: -w
Utilisez WORKDIR dans votre fichier Docker pour définir le répertoire de travail. Ensuite, vous pouvez exécuter votre commande avec EXEC.
la source
Cela peut être dû au problème d'autorisation ou l'instance ne peut pas trouver le chemin d'accès disponible à l'exécutable. Pour vérifier cela, essayez d'ajouter l'emplacement disponible de l'exécutable dans chemin et essayez d'exécuter le script.
pour ajouter le répertoire en cours dans le chemin, veuillez utiliser la commande ci-dessous
la source