docker - docker-compose 不显示容器的标准输出日志
问题描述
社区!
我在 python 中开发了一些应该通过 rabbitmq 进行通信的服务。Python 脚本看起来是正确的。在我将它们移动到 docker 容器后的事件,它们继续看起来工作(“等待消息”行由有效负载脚本生成):
grafalex@debian:~/Work/partitioner/worker$ docker run -it --network partitioner_pocnetwork worker:latest
[*] Waiting for messages. To exit press CTRL+C
问题是,一旦我通过 docker-compose 运行相同的程序,我就再也看不到任何日志了。有时日志的一部分可能会出现在控制台中,但只是一部分。
grafalex@debian:~/Work/partitioner/worker$ docker-compose up worker1
Starting partitioner_worker1_1 ... done
Attaching to partitioner_worker1_1
这是 docker-compose.yml 片段
version: "3.9"
services:
worker1:
image: worker:latest
restart: always
networks:
- pocnetwork
...
networks:
pocnetwork:
丢失日志可能是什么问题?它可以是某种标准输出缓冲(如果是这样,我该如何解决)?
解决方案
由于您似乎正在使用预先存在的 docker 网络,因此 docker-compose 中的 docker run 命令的等效项应如下所示:
worker1:
image: worker:latest
restart: always
networks:
- pocnetwork
networks:
pocnetwork:
external: true
name: partitioner_pocnetwork
您需要先声明外部网络。这能解决你的问题吗?
推荐阅读
- powershell - 我的代码不会写“没有要处理的文件”
- java - 返回动态类的实例
- http - 发送 MSGPack 正文生成 HTTP 500
- vue.js - 自定义 Vue JS 插件无法使用 Nuxt JS 正确导入
- hl7-fhir - 是否有搜索参数修饰符用于针对资源中类似数组的元素的固定位置(“第一个”或“最后一个”)查询值?
- reactjs - 将设置按钮反应为禁用状态
- java - 如何以编程方式更改分频器偏差
- android - Flutter Plugin manifestPlaceholders 错误
- angular - 如何将授权令牌添加到 HTTP 请求
- python - 在 ElasticSearch 上索引 SQLAlchemy 模型