我在docker上有jboss服务器,我正在尝试检查php是否保存了音频文件。如果文件存在,我想将其复制到本地计算机。
$location = shell_exec('docker exec -it name3 /bin/bash -c cd .**********; ls');
$filepath = $location;
if (file_exists($filepath)) {
//copy that file to local machine
}
echo $filepath;
但对于$ location,我在htdocs(xampp)中找到文件夹。是否可以通过php(在本地服务器上)访问docker容器内的文件?
您可以使用docker cp告诉docker将容器中的文件从容器复制到本地计算机
docker cp <containerId>:/file/path/within/container /host/path/target
获取您可以运行的containerId
docker ps
如果我理解正确,PHP正在您的本地计算机上运行,并且您想检查运行的docker容器中是否存在文件。
无论PHP是否可以访问doc根目录之外的文件系统部分,或者它是否有权执行shell命令(两者都是安全问题),我仍然会使用不同的方法。
/opt/Restcomm-JBoss-AS7/standalone/deployments/restcomm.war/recordings/
请注意,这样你的录音也会在docker容器的重启/崩溃中持续存在,我认为这很重要......