docker tail f的输出未显示

时间:2019-09-11 08:43:14

标签: php docker pipe mkfifo

使用一个php容器,另一个使用dockerfile:

FROM alpine:3.8

# Create the directory that will hold the (shared) unix pipe
RUN mkdir /var/log/shared

CMD :>>/var/log/shared/pipe-from-app-to-stdout &&  tail -f /var/log/shared/pipe-from-app-to-stdout

PHP dockerfile(来自php:7.2-fpm-stretch)包含:

RUN mkdir /var/log/shared
    ADD docker/php/bootstrap-php-fpm.sh /usr/local/bin/bootstrap-php-fpm.sh
    CMD [ "/usr/local/bin/bootstrap-php-fpm.sh" ]

bootstrap-php-fpm.sh包含:

#!/bin/sh

# Create a pipe used by the PHP app to write logs
if [ ! -p /var/log/shared/pipe-from-app-to-stdout ]; then
    mkfifo      /var/log/shared/pipe-from-app-to-stdout
    chmod 777   /var/log/shared/pipe-from-app-to-stdout
fi

exec php-fpm

他们俩都在docker-compose上共享了一个卷:

volumes:
      - logs:/var/log/shared

在php脚本上,我在/ var / log / shared / pipe-from-app-to-stdout上写了一些日志(这一部分还可以,如果我将文件拖入docker容器文本中出现),但是tailf容器没有t在docker日志上显示任何输出。

我检查文件的inode在两个容器之间是否相同。

谢谢

0 个答案:

没有答案