繁体   English   中英

如何使用 ENTRYPOINT 或 CMD 从 docker 进程和 pipe 捕获标准输出到另一个

[英]How to capture stdout from docker process and pipe to another using ENTRYPOINT or CMD

我有这个:

ENTRYPOINT ["node", ".", "|", "tee", ">(echo 'bar')"]

但它似乎不起作用,可能是因为tee没有安装在我的容器中。 这是正确的方法吗? 我想在 ECS 上运行容器,将 stdout/stderr 从节点进程发送到容器 stdout/stderr,但也要捕获它。

例如,我尝试这样做:

ENTRYPOINT ["node", ".", "|", "cat > /dev/null"]

这并没有按预期工作。 但是,这似乎确实有效:

ENTRYPOINT node . | cat > /dev/null

有人知道为什么吗?

我想在 ECS 上运行容器,将 stdout/stderr 从节点进程发送到容器 stdout/stderr

如果您的节点是容器的主进程,您确实需要 cat 或 tee 等,它会将日志写入容器的 stdout/stderr。 如果您将日志写入文件,那么最好将这些日志记录到控制台,因为将日志写入容器中的文件无济于事。

此外,如果已配置,您将能够在您的云手表中捕获这些日志。

只需添加它,它就足以处理日志案例。

FROM node:alpine
WORKDIR /app
CMD ["node", "app/server.js"]

这就是日志流的样子。

在此处输入图像描述

或者如果您想推送到 ELK,那么流程将是

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM