无法通过 php 从 linux 库创建文件
unable to create files from linux library via php
我在 php 中有一个适用于 docker 的应用程序。我想从 php 代码发送命令到应该创建文件的容器(some_dir/certs/cert.crt 等)。这个命令我 运行 像这样(通过 system/exec/shell_exec 或 symfony/process)
system("traefik-certs-dumper file --source acme.json --dest some_dir --version v2");
当 php 运行 这段代码创建了目录但没有创建文件,我也没有任何错误。
当我通过 docker exec
从终端而不是 php 生成时,此命令有效。这可能是 php 和 docker 容器之间的一些权限问题,但我不知道如何设置它。
我正在尝试在 docker 文件中设置此文件,但无法正常工作:
RUN chmod 777 /go/bin/traefik-certs-dumper
RUN usermod -u 1000 www-data
标准命令也是这样工作的:
system("mkdir -p some_dir_1234");
system("touch some_dir_1234/some_file_1234");
如何允许已安装的库创建文件?
尝试
exec("traefik-certs-dumper file --source acme.json --dest some_dir --version v2");
而不是系统()
我终于找到了解决办法。在一个单独的容器中,我有一个进程主管 运行,他看到了这个文件,因为它也被挂载到主应用程序目录。要做的就是将文件挂载到主容器和主管容器中。
我在 php 中有一个适用于 docker 的应用程序。我想从 php 代码发送命令到应该创建文件的容器(some_dir/certs/cert.crt 等)。这个命令我 运行 像这样(通过 system/exec/shell_exec 或 symfony/process)
system("traefik-certs-dumper file --source acme.json --dest some_dir --version v2");
当 php 运行 这段代码创建了目录但没有创建文件,我也没有任何错误。
当我通过 docker exec
从终端而不是 php 生成时,此命令有效。这可能是 php 和 docker 容器之间的一些权限问题,但我不知道如何设置它。
我正在尝试在 docker 文件中设置此文件,但无法正常工作:
RUN chmod 777 /go/bin/traefik-certs-dumper
RUN usermod -u 1000 www-data
标准命令也是这样工作的:
system("mkdir -p some_dir_1234");
system("touch some_dir_1234/some_file_1234");
如何允许已安装的库创建文件?
尝试
exec("traefik-certs-dumper file --source acme.json --dest some_dir --version v2");
而不是系统()
我终于找到了解决办法。在一个单独的容器中,我有一个进程主管 运行,他看到了这个文件,因为它也被挂载到主应用程序目录。要做的就是将文件挂载到主容器和主管容器中。