Docker compose提取了两个图像,一个应用程序和fluentd,但没有将fluentd的日志发送到stdout

Docker compose提取了两个图像,一个应用程序和fluentd,但没有将fluentd的日志发送到stdout,docker,go,docker-compose,fluentd,Docker,Go,Docker Compose,Fluentd,我是新的fluentd,我使用了两张docker图片,一张是fluentd,另一张是我的webapp。webapp正在创建日志,fluentd正在侦听具有in_forward类型的端口,但日志未发送到stdout Docker-compose.yml文件 dataporter: image: <app-docker> command: <associated command> ports: - 80:8080 links:

我是新的fluentd,我使用了两张docker图片,一张是fluentd,另一张是我的webapp。webapp正在创建日志,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"
dataporter:
图片:
命令:
端口:
- 80:8080
链接:
-弗伦特
登录中:
司机:“fluentd”
选项:
fluentd地址::24224
标签:数据搬运工
fluentd:
图片:
卷数:
-./fluentd.conf:/fluentd/etc/fluent.conf
端口:
- "24224:24224"
fluentd.conf文件

<source>
  @type forward
  port 24224
  bind "0.0.0.0"
</source>

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

@打字前进
端口24224
绑定“0.0.0.0”
@类型标准输出

我的应用程序在golang,我把一些简单的日志语句放在这个包中
import log“github.com/sirupsen/logrus”
,因此我的简单日志语句是
log.Info(“Infof print”)
但除了初始启动语句外,fluentd docker容器日志中没有显示新日志。

fluentd映像没有看到日志的原因是data porter映像需要fluentd来完成其设置,因此尽管data porter容器正在运行,但无法正确连接到fluentd容器。总之,任何需要连接到fluentd的容器都需要等待fluentd完成设置。 为了解决这个问题,我使用了一个脚本来停止依赖fluentd的容器并启动它进行备份。将
容器\u名称:
添加到docker-compose.yml文件中,以获取脚本的服务帮助

docker-compose up -d
sleep(3)
docker stop <container-name-relying-on-fluentd>
docker-compose up -d
docker compose up-d
睡眠(3)
码头停靠站
docker compose up-d

fluentd映像没有看到日志的原因是data porter映像需要fluentd来完成设置,因此尽管data porter容器正在运行,但无法正确连接到fluentd容器。总之,任何需要连接到fluentd的容器都需要等待fluentd完成设置。 为了解决这个问题,我使用了一个脚本来停止依赖fluentd的容器并启动它进行备份。将
容器\u名称:
添加到docker-compose.yml文件中,以获取脚本的服务帮助

docker-compose up -d
sleep(3)
docker stop <container-name-relying-on-fluentd>
docker-compose up -d
docker compose up-d
睡眠(3)
码头停靠站
docker compose up-d

我创建了一个最小的设置来尝试复制它——一个go应用程序在一个容器中使用logrus,在另一个容器中使用fluentd——并且毫无问题地获得了日志输出。请阅读有关如何创建一个显示您的问题并更新您的问题的信息。我在这里找到了问题。即使使用
也依赖于
链接
dataporter
容器也不会等待
fluentd
完成运行。只需停止
dataporter
container并重新组合docker映像即可修复它。我不确定我是应该删除这个问题还是让其他人看。如果有人可以回复此评论,将其保留或删除,那就太好了。如果您打算保留此评论,我建议您创建一个包含有关问题和解决方案的更多详细信息的答案,并将其标记为已接受,因此,其他人可以更容易地看到答案是否与他们相关。我创建了一个最小的设置来尝试复制它-一个go应用程序,在一个容器中使用logrus,在另一个容器中使用fluentd-并毫无问题地获得日志输出。请阅读有关如何创建一个显示您的问题并更新您的问题的信息。我在这里找到了问题。即使使用
也依赖于
链接
dataporter
容器也不会等待
fluentd
完成运行。只需停止
dataporter
container并重新组合docker映像即可修复它。我不确定我是应该删除这个问题还是让其他人看。如果有人可以回复此评论,将其保留或删除,那就太好了。如果您打算保留此评论,我建议您创建一个包含有关问题和解决方案的更多详细信息的答案,并将其标记为已接受,以便其他人可以更容易地看到答案是否与他们相关。