0

我有这个:

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

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

例如,我尝试这样做:

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

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

ENTRYPOINT node . | cat > /dev/null

有人知道为什么吗?

4

1 回答 1

0

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

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

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

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

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

这就是日志流的样子。

在此处输入图像描述

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

在此处输入图像描述

于 2019-09-18T21:49:41.967 回答