Как перехватить логи команды, запущенной через `docker -compose exe c -d` в фоновом режиме? - PullRequest
1 голос
/ 14 февраля 2020

Рассмотрим файл docker-compose.yml, подобный следующему:

version: '3'

services:
  test:
    image: ubuntu:18.04
    tty: true

Я могу вызвать службы в фоновом режиме, запустив docker-compose up -d

Теперь я могу запускать команды для этого контейнера, используя docker-compose exec

Например:

docker-compose exec test ls -lrt | head -3

Когда я запускаю вышеупомянутую команду, я получаю вывод на свой терминал

total 64
drwxr-xr-x   8 root root 4096 May 23  2017 lib
drwxr-xr-x   2 root root 4096 Apr 24  2018 home

Теперь я хочу, чтобы быть в состоянии выполнить вышеупомянутую команду в фоновом режиме, что я могу сделать с

docker-compose exec -d test ls -lrt | head -3

Команда будет работать в фоновом режиме, что хорошо. Но как я могу получить доступ к выводу вышеуказанной команды?

1 Ответ

1 голос
/ 14 февраля 2020

Вы можете перенаправить вывод в файл внутри вашего контейнера и впоследствии вывести содержимое этого файла, например:

# execute command and redirect to output.log in container
docker-compose exec -d test sh -c 'ls -lrt | head -3 > /tmp/output.log'

# retrieve output content
docker-compose exec test cat /tmp/output.log
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...