Мне нужно запустить приложение из определенного каталога.
$ 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
Этот каталог определенно существует, и если я подключусь к докеру, запустив bash в интерактивном режиме, я смогу запустить приведенную выше команду.
$ sudo docker run -i -t ubuntu/decomposer /bin/bash
# cd /local/deploy/decomposer; ./decomposer-4-15-2014
Я могу запустить свою программу, указав полный путь, но затем она вылетает, так как ожидается ее запуск из текущего каталога. Что я могу сделать?
/bin/sh -c
любом случае.Вы можете использовать
-w
опцию, чтобы изменить свой рабочий каталог.Итак, в вашем случае вы бы запустили:
источник
-w
сdocker exec
? Я ищу способ запустить скрипт Python в моем контейнере, но не могу остановить его вне контейнера.flag provided but not defined: -w
Используйте WORKDIR в вашем Dockerfile, чтобы установить рабочий каталог. Затем вы можете запустить свою команду с EXEC.
источник
Это может произойти из-за проблемы с правами доступа или экземпляру не удалось найти доступный путь к исполняемому файлу. Чтобы проверить это, попробуйте добавить доступный исполняемый файл в путь и попробуйте запустить скрипт.
чтобы добавить текущий каталог в путь, используйте команду ниже
источник