Любой скрипт строго говоря тоже процесс, просто прерываемый. Поэтому по завету должен бежать в отдельном умираемом контейнере.
Если composer и artisan еще как то вписываются в php контейнер, то npm уже как-то хочется иметь в отдельном контейнере. И было бы странно разделять подходы. Поэтому для каждого инструмента заводите отдельный dockerfile. Такое разделение также облегчит обновление инструментов, хотя, подозреваю, для многих это не так важно.