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

时间:2018-05-15 23:57:30

标签: docker docker-compose

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             | python             | python             | python             | python             | python             | python             | python             | python             | python             | python             | python             | python             | python             | python             |                                               

预期产出:

collected 511 items

test_access.py                                                     

1 个答案:

答案 0 :(得分:0)

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

import requests

response = requests.get('google.com')
print (response.text)

docker-compose up python | sed -u 's/^[^|]*[^ ]* //' 意味着匹配所有非|的内容,因此在您的示例中,它将匹配python和所有空格,直到第一个|。

[^|]*与上面的类似,不同之处在于它匹配所有非空格的内容。这是必要的,因为[^ ]*后不仅只有一个空格,docker-compose还添加了一些控制字符来为输出着色。

在此之后,|之后实际上有一个空格。

|的第一个斜杠确定第一个正则表达式的结尾。在这些斜线内,您可以放置​​一些内容来替换匹配的内容,在这种情况下,该内容为空。

使用foreman之类的其他工具来管理流程时,必须使用//选项。