@FlooDwm

Как убить процесс внутри docker контейнера из под php?

Суть такова:
Есть контейнер он запускается из под php по кнопке из браузера

system( ‘sudo docker run bla bla bla’);
Все прекрасно работает запускается, но затем я запускаю в контейнере процесс свой и затем я хочу его kill.
Из под консоли docker exec -it ##### kill #### , работает процесс килится, а вот из под php не килится и ошибок не выводит, и че я уже не перепробовал не убивается и все, подскажите куда смореть?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@FlooDwm Автор вопроса
проблема решена, нужно убрать -i флаг (интерактивность) :)) и все заработает.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Скорее всего, вы запускаете docker exec без sudo. А в консоли это нормально работает потому что у текущего пользователя есть соответствующие права (например, вы работаете под пользователем root).

Кстати, ошибки могут быть не видны из-за того, что они выводятся в STDERR, а вы в PHP получаете только вывод в STDOUT. Чтобы было видно такие ошибки, нужно использовать перенаправление вывода: 2>&1. Что-нибудь вроде этого должно быть: docker exec -it ##### kill #### 2>&1.

Дополнительно, при вызове system в PHP, можно передать переменную во второй параметр, и после завершения вызова, она будет содержать результат работы команды. Если значение этой переменной равно 0, то всё прошло без ошибок. Любое не-нулевое значение — сигнал об ошибке.

У меня ещё был случай, когда вызов консольной команды ничего не делал, потому что, как оказалось, бинарник было не видно. В том случае скрипт вызывался из крона, и там был не такой PATH, который был при работе в консоли через SSH. В качестве эксперимента, попробуйте выполнить в консоли which docker и потом используйте полный путь до бинарника вместо простого «docker». Например, так:

system('sudo /usr/local/bin/docker exec blah-blah-blah');
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 130 000 до 200 000 ₽
Studyworld Санкт-Петербург
от 150 000 до 200 000 ₽
R.TIGER Санкт-Петербург
от 100 000 ₽
29 сент. 2020, в 01:42
5000 руб./за проект
28 сент. 2020, в 22:46
1500 руб./за проект
28 сент. 2020, в 22:42
5000 руб./за проект