gpt4 book ai didi

docker - 如何从日志中删除带有服务名称的前缀?

转载 作者:行者123 更新时间:2023-12-01 00:18:55 27 4
gpt4 key购买 nike

docker-compose 插入前缀,如 service_1 |在每一行输出的开头。我使用这个容器进行测试,这种改进(在其他情况下非常有用)弄乱了我的调试日志,我想为此服务删除它。 Documentation没有关于这个问题的信息。有任何想法吗?
我的 docker-compose.yml :

version: '3'
services:
rds:
image: postgres:9.4
ports:
- ${POSTGRES_PORT}:5432
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
dynamo:
image: iarruss/dynamo-local-admin:latest
ports:
- ${DYNAMODB_PORT}:8000
python:
container_name: python
image: iarruss/docker-python2:latest
depends_on:
- rds
- dynamo
environment:
POSTGRES_HOST: rds
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
DYNAMODB_HOST: dynamo

编辑:明确预期结果

电流输出:
python             |
python | collected 511 items
python |
python | tests/test_access.py
python |

预期输出:
collected 511 items

test_access.py

最佳答案

在 unix shell 中,您可以使用管道 (|):

docker-compose up python | sed -u 's/^[^|]*[^ ]* //'
[^|]*表示匹配所有不是 | 的内容,因此在您的示例中,它将匹配 python 和所有空格,直到第一个 |。
[^ ]*与上述类似,不同之处在于它匹配所有不是空格的内容。这是必要的,因为在 | 之后不仅有一个空格, docker-compose 添加了一些控制字符来为输出着色。

在此之后,有一个空格可以实际删除 | 之后的空格。 .
//的第一个斜线确定第一个正则表达式的结尾。在这些斜杠中,您可以放置​​一些内容来替换匹配的内容,在这种情况下,它是空的。
-u当您使用其他一些工具来管理您的流程时,选项是必要的,例如 foreman .

关于docker - 如何从日志中删除带有服务名称的前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50360674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com