2014-10-10 4 views
12

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

/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/, но я думал, что могу запустить кое-что из командной строки для доказательства концепции для нашего приложения.

ответ

17

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

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

и положить что-то после команды в фоновый режим контейнера не сразу выйти

0

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

Смежные вопросы