Подтвердить что ты не робот

Аргументы командной строки для запуска докеров

Я пытаюсь постепенно создать образ докера для наших нужд. То, что я хочу сделать, это запустить мой базовый образ с моно, а затем моно запустить исполняемый файл в фоновом режиме. Из обычной командной строки, не пытаясь запустить ее в контейнере, это будет выглядеть так:

/usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe &

Это отлично работает. Но если я попытаюсь сделать это, когда я запускаю контейнер следующим образом:

sudo docker run -i -t crystal/mono-base /usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe &

No such file or directory. Есть ли способ, которым я могу передать & в? В конце концов, я хотел бы передать & в для запуска этого BackgroundProcessor в фоновом режиме, а затем запустить другое приложение на переднем плане. Я видел этот пост для другого решения, http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/, но я подумал, что может запустить некоторые вещи из командной строки для проверки концептуальных вещей для нашего приложения.

4b9b3361

Ответ 1

используйте параметр -c для bash, чтобы дать ему командную строку в виде строки:

sudo docker run -i -t crystal/mono-base bash -c "/usr/local/bin/mono /home/crystal/Downloads/BackgroundProcesser.exe & /bin/bash"

и поместите что-то после того, как команда backgrounded в контейнер не сразу выйдет из

Ответ 2

Ответ на

@Ulfeldt работает. Возможно, вы захотите создать script для управления своими процессами, поскольку такая командная строка быстро выйдет из-под контроля. Вы также можете использовать супервизор для запуска нескольких процессов, как было объяснено в другом месте.