Как вывести прогресс rsyn c, запустив его через скрипт в docker -compose? - PullRequest
0 голосов
/ 13 января 2020

Я запускаю rsyn c через скрипт, но не получаю индикатор выполнения. Он работает нормально, когда я запускаю его напрямую, но когда я запускаю скрипт, я получаю только эхо.

В моем docker-compose.yml:

command: /home/node/build-dir/command.sh
tty    : true # Show output with syntax highlighting support.
#!/bin/ash

# First check if the directory is empty, as it is when it is mounted for the first time.
if [ -z "$(ls -A /home/node/work-dir/node_modules)" ]
  then
    echo 'Beginning to copy node_modules folder...'
    # Recursively copy all files of build directory to that of the working directory.
     rsync -ah --info=progress2 /home/node/build-dir/node_modules /home/node/work-dir/node_modules
    echo 'Finished copying node_modules folder...'
  else
    echo 'The folder "node_modules" already exists; skipping copying.'
fi

# Run npm start command to start development.
exec npm start

Я хочу, чтобы покажите прогресс и затем остановитесь, когда он закончится, завершив выполнение скрипта. Я хочу, чтобы это было так, как будто я запускаю его непосредственно через оболочку, используя docker exec -it my_app ash, а затем запускаю следующее:

rsync -ah --info=progress2 /home/node/build-dir/node_modules /home/node/work-dir/node_modules

Пока что я ничего не получаю, поскольку в нем действует так же, как cp. Я получаю два эха "Начало копирования ..." и "Законченное копирование ..." и все. Где прогресс?

  • Я попытался запустить команду через оболочку на моем хосте с тестовыми файлами, и она сработала.
  • Я попытался запустить скрипт через оболочку на моем хосте с тестовыми файлами, и это сработало.
  • Я попытался запустить команду через оболочку из контейнера, и она сработала.
  • Я попытался запустить сценарий через оболочку из контейнера и это сработало.

Мое единственное предположение, что я сделал что-то не так с моим docker-compose.yml файлом.

1 Ответ

0 голосов
/ 16 января 2020

Я использовал docker-compose up..., в то время как я должен был использовать docker-compose run....

Источник для поиска моего ответа: Интерактивная оболочка с использованием Docker Создать .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...