Docker делает исполняемый файл .sh и запускает его

Я пытаюсь предоставить исполняемые разрешения для моего скрипта внутри изображения докеров и запустить его. Я не хочу устанавливать chmod + x для него в Dockerfile. Я пытался

docker run img / bin / bash -c "chmod + x ../test/test.sh; ../test/test.sh

но я получил "/ bin / bash: плохой интерпретатор: текстовый файл занят"

и я не могу просто сделать два контейнера с этими командами:

docker run -d img chmod + x ../test/test.sh

docker run -d img ../test/test.sh

=> начальный процесс контейнера вызвал «exec: \» ../ test / testing.sh \ »: разрешение отклонено"

мне нужно как-то связать эти два контейнера вместе

Text file busy означает, что что-то уже использует файл.

Обычно это будет работать

 docker run --rm -it alpine sh -c 'echo "echo it works" > test.sh && chmod +x test.sh && ./test.sh' 

Со второй командой вы создаете два новых контейнера, которые полностью разделены. Если вы хотите что-то выполнить в запущенном контейнере, вы можете использовать docker exec -it <container id or name> <command eg bash>

Вам не нужно устанавливать perms, если вы просто передаете свой скрипт в качестве параметра:

 docker run -d IMAGE /bin/bash ../test/test.sh 

(добавьте -i и / или -t если они вам понадобятся)

Хорошо, я понял это:

сначала я сделал контейнер:

 docker run --name CONTAINER -dt IMAGE 

затем выполните мои команды:

 docker exec CONTAINER chmod +x ../test/test.sh docker exec CONTAINER ../test/test.sh