当我在Laravel v9.0中运行这段代码时,
$process = new Process(['sudo','docker','login','-u',$this->git_username,'-p',$this->git_token,$this->docker_image_url]);
$process->setTty(true);
$process->run();`
我一直得到这个错误"TTY mode requires /dev/tty to be read/writable."
在参考laravel文档时,我注意到这个过程在版本10中可用。但是如果我删除$process->setTty(true);
,它运行得很好。但我需要运行sudo,因为需要root权限。
请帮帮我,先谢了。
当我在进程中没有sudo
和$process->setTty(true);
的情况下运行时,结果如下
WARNING! Using --password via the CLI is insecure. Use --password-stdin. permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/auth": dial unix /var/run/docker.sock: connect: permission denied
如果进程中没有$process->setTty(true);
,则结果如下
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper sudo: a password is required
1条答案
按热度按时间jqjz2hbq1#
我也有同样的问题。我不认为tty模式可以编程实现。我使用shell_exec函数代替,它对我来说工作得很好。
比如说