Я запускаю следующий скрипт php. Он создает файл сценария, который запускает пару команд докеров. Но этот файл скрипта по какой-то причине не запускает команды докеров. Он запускает обычные команды файла сценария, такие как ls, pwd, echoetc.
$code = $_POST['source'];
$myfile = fopen("abc.py", "w");
fwrite($myfile, $code);
$myfile_new = fopen("execu_ta.sh", "w");
$txt = "#!/bin/bash\n\n";
fwrite($myfile_new, $txt);
$txt1 = "docker build -t python-new-world .";
$txt2 = "docker run python-new-world\n";
fwrite($myfile_new, $txt1);
fwrite($myfile_new, $txt2);
$result=shell_exec('path of the "execu_ta.sh" file');
echo $result;
?>
Что здесь может быть не так?
@Ujin, может, ты мог бы добавить свой комментарий в качестве ответа, чтобы получить за него признание?






Вам необходимо установить исполняемый бит chmod("your script filename", 0755); или использовать shell_exec('/bin/bash your_script')
Тогда почему он запускает команды оболочки? Может быть, скрипт существует и имеет необходимые разрешения?
В дополнение к ответу Уджина я бы тоже сбросил и закрывал файл, иначе вы можете выполнить пустой скрипт. Убедитесь, что докер находится на вашем пути.
вам нужно установить исполняемый бит или использовать
shell_exec('/bin/bash your_script')