Я запускаю 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
файлом.