Я должен выполнить сценарии внутри контейнера Docker, пример
composer install
или же
bin/another-script another-script-arg-1 another-script-arg-2
чтобы выполнить эту команду внутри контейнера, мне нужно выполнить что-то вроде (используя docker-compose)
sudo docker-compose exec container-name sh -c 'bin/another-script another-script-arg-1 another-script-arg-2'
Я хочу написать простой сценарий, который позволит мне сохранить некоторые опечатки и дополнительные штрихи для выполнения только отклонений предыдущей команды, поэтому я написал сценарий
#!/usr/bin/env bash
sudo docker-composer exec container-name sh -c "'bin/another-script $@'"
Так что я могу выполнить на улице, просто
bin/another-script another-script-arg-1 another-script-arg-2
но не работает, просто скажите что-то вроде 'bin/another-script' не найдено (внутри контейнера). Я знаю, что это происходит, когда одинарные кавычки не передаются в части -c ''. Я пробовал разные вещи
#!/usr/bin/env bash
sudo docker-composer exec container-name sh -c \'bin/another-script $@\'
или же
#!/usr/bin/env bash
sudo docker-composer exec container-name sh -c "'bin/another-script $@'"
или же
#!/usr/bin/env bash
sudo docker-composer exec container-name sh -c "'"bin/another-script "$@""'"
Редактировать: внутренний путь скрипта bin/another-script
не является проблемой, потому что контейнер перемещается в рабочую директорию, в любом случае, когда я тестировал абсолютный путь, получался тот же результат /app/bin/another-script
#!/usr/bin/env bash
sudo docker-composer exec container-name sh -c "'/app/bin/another-script $@'"
но ничего не работает, любой совет?