Внутри проекта, в том же репозитории. Если это единственный Dockerfile, то можно и в корне, но обычно там ещё лежат всякие конфиги, поэтому в корне проекта создаётся папка docker, в которую складывается всё необходимое.
Возможно ваши сомнения связаны с тем, что кто-то извне достучится до файлов сборки и использует вам во вред. Но ведь корень проекта != корень сайта.
Структура у проекта может быть например такой:
...
/docker (тут данные сборки)
/tests
/vendor
/node_modules и т.п.
/web (это корень хоста для вебсервера)
По поводу отдельного репозитория, он вам не нужен. Исключение составляют лишь случаи, когда требуется разделять права доступа на эту директорию среди членов команды.