PHP Docker 通过文件写入标准错误
PHP Docker write to stderr through file
是否可以将纯文本日志文件重定向到 PHP 可写的 Docker 容器中的 stderr?
我有一个正在写入文件的 PHP 应用程序,我们试图在不更改任何代码的情况下将其移动到 Docker 容器中。我尝试过符号链接,但这会导致权限错误。
不确定您尝试了哪种类型的符号链接,但您应该可以使用
RUN ln -sf /dev/stderr /path/to/your/text.log
在您的 Dockerfile 中(其中 text.log 路径是容器内的路径)。
我最终找到了这个解决方案,它使用 fifopipe
将数据通过管道传输到标准输出。
# Allow `nobody` user to write to /dev/stderr
mkfifo -m 600 /tmp/logpipe
chown nobody:nobody /tmp/logpipe
cat <> /tmp/logpipe 1>&2 &
https://github.com/moby/moby/issues/6880#issuecomment-344114520
是否可以将纯文本日志文件重定向到 PHP 可写的 Docker 容器中的 stderr?
我有一个正在写入文件的 PHP 应用程序,我们试图在不更改任何代码的情况下将其移动到 Docker 容器中。我尝试过符号链接,但这会导致权限错误。
不确定您尝试了哪种类型的符号链接,但您应该可以使用
RUN ln -sf /dev/stderr /path/to/your/text.log
在您的 Dockerfile 中(其中 text.log 路径是容器内的路径)。
我最终找到了这个解决方案,它使用 fifopipe
将数据通过管道传输到标准输出。
# Allow `nobody` user to write to /dev/stderr
mkfifo -m 600 /tmp/logpipe
chown nobody:nobody /tmp/logpipe
cat <> /tmp/logpipe 1>&2 &
https://github.com/moby/moby/issues/6880#issuecomment-344114520