使用docker-compose up启动多容器时前序容器初始化日志不显示如何解决
解决方案
单次执行生效
启动命令追加--attach-dependencies参数即可:
docker-compose up --attach-dependencies
该参数会强制Docker Compose从服务启动阶段就挂载所有关联容器的日志输出,无需等待全部服务启动完成后再统一打印,所有容器的启动过程日志都会实时展示在终端。
如果你使用的是V2版本Docker Compose(命令格式为无中划线的docker compose),也可以使用全量挂载参数:
docker compose up --attach "*"
永久配置生效
无需每次执行命令带参数,可直接在docker-compose.yml中为所有服务添加tty: true配置,示例如下:
version: '3.8' services: redis: image: redis:alpine tty: true postgres: image: postgres:13-alpine tty: true celery: build: ./ command: celery -A app worker tty: true flask: build: ./ command: python run.py depends_on: - redis - postgres - celery tty: true
该配置会为每个容器分配伪终端,关闭标准输出流缓冲,确保容器输出可以被Docker Compose实时捕获打印。
启动后补看全量日志
如果服务已经启动完成,可直接执行以下命令查看所有容器从启动开始的全量历史日志,且会实时刷新后续输出:
docker-compose logs -f
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

