Вот трюк, который я использовал, чтобы заставить скрипт запускаться внутри контейнера docker
:
#!/bin/sh
export THIS="$(readlink -f "$0")"
if [ "--raw" = "${1:-}" ]; then
echo "inside: $(uname -a)"
else
echo "outside: $(uname -a)"
docker container run \
--env THIS \
--interactive \
--mount type=bind,source="${THIS}",target="${THIS}",readonly \
--rm \
alpine sh -c "${THIS} --raw"
fi
У этой идиомы есть имя?Лучшее, что я смог придумать, - это «сценарий самообучающейся оболочки»