我有一个 docker 文件,它的入口点是一个 s2i/bin/run 脚本:
#!/bin/bash
export_vars=$(cgroup-limits); export $export_vars
exec /opt/app-root/services.sh
该services.sh
脚本运行 php-fpm 和 nginx:
php-fpm 2>&1
nginx -c /opt/app-root/etc/conf.d/nginx/nginx.conf
# this echo to stdout is needed otherwise no stdout doesn't show up on the docker run output
echo date 2>&1
php 脚本正在记录到,stderr
以便脚本执行2>&1
重定向到stdout
日志聚合器所需的位置。
我想运行sed
或awk
超过日志输出。但是,如果我尝试:
php-fpm 2>&1 | sed 's/A/B/g'
或者
exec /opt/app-root/services.sh | sed 's/A/B/g'
然后当我运行容器时什么都没有显示。没有管道来 sed 的输出php-fpm
显示为docker run
OK 的输出。
有没有办法确保输出输出到 docker 的输出sed
?php-fpm
编辑请注意,我在这两个地方都尝试了明显| sed 's/A/B/g'
的方法,并且还尝试在两个地方的子外壳中运行管道。两者都不起作用,所以这似乎是一个或问题。$(stuff|sed 's/A/B/g')
Docker
s2i