【发布时间】:2021-02-26 00:08:14
【问题描述】:
我有以下 Dockerfile:
FROM ubuntu:16.04
RUN apt-get update
VOLUME ["/LOGS"]
COPY ./testServer .
ENTRYPOINT ./testServer 8600
“testServer”有正在写入的日志文件。它们位于目录“LOGS”中。每次启动“testServer”时,都会创建一个新日志。我想做的是将目录中的最新日志文件“尾”到stdout/stderr。
我尝试添加:
CMD ["/bin/sh", "-c", "tail $( ls -Art /LOGS | tail -n 1 ) > out_server.log 2>&1"]
到 Dockerfile(然后重建映像),但它不起作用。
如何做到这一点?
TIA
【问题讨论】:
-
您希望输出到文件 out_server.log 还是到 stdout?当你说它不起作用时,它做错了什么?
-
你可以使用
docker exec container_name -c "tail -f /your/path/to/log" -
你试过
docker logs吗? -
大家好,感谢您的回复
-
@BMitch - 我希望输出到标准输出/标准错误。我正在使用 Portainer - 它 (Portainer) 允许查看正在运行的容器的 stderr 和 stdout 文件。当我将 CMD(上图)放入 Dockerfile(并创建一个新图像)时,在运行它时,Portainer 在 stderr/stdout 显示中没有显示任何内容。