#php #docker #shell #sudo #synology
Вопрос:
У меня есть скрипт, который перезапускает контейнер docker.
- Если я выполню этот скрипт от имени root, он будет работать идеально.
- Я установил sudoers, чтобы другим пользователям не требовался пароль для выполнения этого скрипта от имени root
- Я хочу, чтобы мое веб-приложение (на основе php) могло выполнить его, если я нажму кнопку
Но вот в чем проблема.
Мой PHP файл включает в себя:
<?php
echo passthru("sudo /volume1/web/VPN/vpnSwitchLocation.sh $location 2>amp;1");
?>
И скрипт выполняется без пароля! Но в скрипте есть команда docker
docker run ...
Когда я когда-либо вызываю скрипт с php, возникает эта ошибка:
docker: command not found
Но если я выполню его без sudo (вручную из оболочки), он будет работать отлично. Поэтому мой вопрос таков:
как я могу выполнять сценарии с помощью sudo в PHP, которые содержат команды docker?
С уважением
Комментарии:
1. Похоже, что (уменьшенное) значение ПУТИ sudo не включает путь к
docker
. Где установлен двоичный файл docker? (type -a docker
должен это сделать)