docker - Docker-compose拉出两个图像,一个应用程序,并且流畅,但没有日志发送到stdout进行流畅

标签 docker go docker-compose fluentd

我是新手,我正在使用两个docker图像,一个图像是流利的,另一个图像是我的webapp。 Web应用程序正在创建日志,并且fluentd正在使用in_forward类型的端口侦听,但日志未发送到stdout

Docker-compose.yml文件

  dataporter:
    image: <app-docker>
    command: <associated command>
    ports:
      - 80:8080
    links:
      - fluentd
    logging:
      driver: "fluentd"
      options:
        fluentd-address: :24224
        tag: data-porter

  fluentd:
    image: <fluentd-docker>
    volumes:
      - ./fluentd.conf:/fluentd/etc/fluent.conf
    ports:
      - "24224:24224"

fluentd.conf文件
<source>
  @type forward
  port 24224
  bind "0.0.0.0"
</source>

<match **>
   @type stdout
</match>

我的应用程序位于golang中,我在该软件包import log "github.com/sirupsen/logrus"中放入了一些简单的日志语句,因此我的简单日志语句为log.Info("Infof print"),但除初始启动语句外,流利的Docker容器日志中未显示任何新日志。

最佳答案

流利的图像看不到日志的原因是因为数据端口图像需要流利才能完成其设置,因此尽管数据端口容器正在运行,但它仍无法正确连接至流利的容器。总之,任何需要连接到流利的容器都需要等待流利完成设置。
为了解决这个问题,我有一个脚本可以停止对fluentd的依赖,然后将其备份。在docker-compose.yml文件中添加container_name: <name>,以获取脚本的服务帮助。

docker-compose up -d
sleep(3)
docker stop <container-name-relying-on-fluentd>
docker-compose up -d

关于docker - Docker-compose拉出两个图像,一个应用程序,并且流畅,但没有日志发送到stdout进行流畅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58563760/

相关文章:

Docker 仅数据容器并处理新版本

docker - docker-compose评估命令数组中的表达式

Docker - 错误 : failed to register layer: symlink

go - 具有非常大限制的 channel 的成本

node.js - openssh 返回 "bad key type"以及加密生成的 key 对

json - 解析带有尾随逗号的 JSON 数组和 map 元素时出现运行时错误

go - 为什么我会得到这个适配器接口(interface)模式的无限循环

docker - 为什么我们只能推送图像而没有 docker-compose.yml 到 dockerhub

php - 如何在基于SimpleSAMLphp的IdP中用属性替换NameId的值?

docker - 解决 command terminated with exit code 137 in pod Kubernetes