inotifywait с командой и переменной Docker
Я пытаюсь создать сценарий оболочки, который проверит наличие нового файла, затем перейдет в Docker-контейнер. Код, который у меня пока есть...
#!/bin/sh
source="/var/www/html/"
dest="dev_ubuntu:/var/www/html/"
inotifywait -m "/var/www/html" -e create -e moved_to |
while read file; do
sudo docker cp /var/www/html/$file dev_ubuntu:/var/www/html
done
Но этот код выдает следующую ошибку:
Setting up watches.
Watches established.
"docker cp" requires exactly 2 argument(s).
See 'docker cp --help'.
Usage: docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
Copy files/folders between a container and the local filesystem
Что я делаю неправильно?
1 ответ
Решение
У вас есть пробелы в именах файлов? Используйте двойные кавычки, чтобы избежать разделения имен файлов на слова:
echo $file
sudo docker cp "$file" dev_ubuntu:"$file"
Я также повторил имя файла, чтобы увидеть, что происходит.