我有这个:

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

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

例如,我尝试这样做:

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

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

ENTRYPOINT node . | cat > /dev/null

有人知道为什么吗?

#1楼 票数:1 已采纳

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

如果节点是容器的主进程,则需要cat或tee等,它将日志写入容器的stdout / stderr。 如果您将日志写入文件,则最好将这些日志记录到控制台,因为将日志写入容器中的文件毫无益处。

此外,如果进行了配置,您将能够在云监视中捕获这些日志。

只需添加它,它将足以处理日志情况。

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

因此,这就是日志流的样子。

在此处输入图片说明

或者,如果您想推送至ELK,则流程为

在此处输入图片说明

  ask by MrCholo translate from so

未解决问题?本站智能推荐:

2回复

在ENTRYPOINT中将流程传递给用户有多糟糕?

在Dockerfile中使用这样的代码有多糟糕: 大多数日志记录解决方案都需要一些非常讨厌的配置。 以上是我们以编程方式捕获日志并编写自己的粘合代码的一种方式。 上述解决方案的主要问题是CMD参数不会追加到node进程中吗? 我认为他们会改为附加到tee过程中? 像这样的东西
2回复

将参数添加到不同容器的入口点/ cmd

我有这个简单的node.js图像: 最终,我只希望能够像这样将不同的参数传递给node dist/main.js : 这样运行时的可执行文件是 我已经读过有关CMD / ENTRYPOINT的信息,我不知道该怎么做,有人知道吗?
1回复

在docker run上使用--user选项的Docker Entrypoint错误

当我只想将我的容器写为非根文件时,我发现docker run出现此问题。 当我使用这种命令(入口点被覆盖)时,我没有任何问题: 它正在工作,我无法使用该容器进入I have no name! 用户帐户x) 但是,在不覆盖此处入口点的情况下: 我有这个错误:
2回复

如何为基本映像覆盖/发现CMD / ENTRYPOINT

说我有这个: 如果我不使用CMD将CMD默认为基本图像中设置的值? 我对ENTRYPOINT使用ENTRYPOINT覆盖基本映像中的ENTRYPOINT ? 我对CMD使用会否覆盖基本映像中的CMD ? 基本上,我的目标是覆盖基本映像的ENTRYPOINT,但能够发现/重用CM
1回复

docker 在容器中从 win cmd 行运行多行 cmd; 未执行的 cmd 或 powershell 停留在多行模式 >>>

我正在尝试在 docker 容器中运行多行 curl cmd,它总是将 cmd 保留在多行模式下。 我试过在 powershell 和 ^ windows 命令中使用反引号进行行继续,结果相同 Powershell 版本
2回复

Docker ENTRYPOINT shell脚本

我在Dockerfile中有这个 它说它找不到run.sh,但是当我这么做的时候 然后它工作。 为什么会这样?
3回复

如何运行拉取的图像 - docker

我正在尝试运行一个拉取的图像,但没有任何成功。 我使用 Image URI 从 AWS 中提取了一个图像。 当我运行docker images我可以看到我拉取的镜像: 我是 dockers 的新手,但根据我的理解,在不需要构建它之后,只需运行它,但是当我尝试像这样运行它时: docker ru
1回复

如何修复Docker OCI运行时创建失败

我正在尝试在翼手龙面板中启动服务器,但是当我单击“开始”按钮时,守护程序出现错误: 我试图重新安装Docker并在面板中禁用了OOM Killer,但是它不起作用。