6

我有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
4

0 回答 0