我有docker-compose.yaml如下问题:
我的问题是标准输出打印或写入它的日志出现在graylog-但只是命令/usr/bin/tini -- foo1.start 下的那些。当我尝试使用以下方法进入服务的 docker 容器时:
docker exec -it [container_hash] bash
启动命令,例如 echo "Hello" 或运行我将执行的 python 脚本import sys; sys.stdout.write("Hello again")--> 在 graylog UI 中收到的消息中不会出现这些消息。
知道为什么没有通过在容器中执行 shell 命令或脚本来收集标准输出吗?并仅从 make file 命令运行的结果中收集打印件?
我不理解这种行为,因为我将所有标准输出通过管道传输到 docker-compose 中的 gelf 日志驱动程序。
编辑:如何在撰写中使用 graylog 的说明来自这里
version: '3.4'
services:
foo1:
ports:
- target: 8081
published: 8084
mode: host
networks:
- dev-net
command: make foo1.start
logging:
driver: gelf
options:
gelf-address: udp://localhost:12201
some-mongo:
image: "mongo:3"
networks:
- dev-net
some-elasticsearch:
image: "elasticsearch:2"
command: "elasticsearch -Des.cluster.name='graylog'"
networks:
- dev-net
graylog:
image: graylog2/server:2.1.1-1
environment:
GRAYLOG_PASSWORD_SECRET: somepasswordpepper
GRAYLOG_ROOT_PASSWORD_SHA2: 8c6976e5b5410415bde908bd4dee15dfb1
GRAYLOG_WEB_ENDPOINT_URI: http://127.0.0.1:9000/api
links:
- some-mongo:mongo
- some-elasticsearch:elasticsearch
ports:
- "9000:9000"
- "12201:12201/udp"
networks:
- dev-net
networks:
dev-net:
ipam:
config:
- subnet: 192.168.12.0/24