feat: support resource limits on the build container

Adds a `docker-args-process-build` trigger to the resource plugin so
limits set via `dokku resource:limit --process-type build APP` are
applied during the build phase. Only `build.limit.*` properties are
read - defaults do not inherit, since builds typically need more memory
than runtime and a leaked tiny default would cause confusing OOM
failures. Reservations are never applied at build time. Allowed flags
are filtered per builder: herokuish gets cpu, memory, memory-swap, and
nvidia-gpu; dockerfile gets memory and memory-swap; pack, nixpacks,
railpack, lambda, and null emit nothing because their underlying CLIs
do not accept docker run resource flags. The dockerfile builder
whitelists the new memory flags and corrects pre-existing typos where
`--ssh` mapped to `--platform` and `--ulimit` mapped to `--tag`.
This commit is contained in:
Jose Diaz-Gonzalez
2026-04-29 03:42:10 -04:00
parent d51726b7cb
commit 132f724841
7 changed files with 285 additions and 6 deletions

View File

@@ -18,6 +18,10 @@ func main() {
var err error
switch trigger {
case "docker-args-process-build":
appName := flag.Arg(0)
builderType := flag.Arg(1)
err = resource.TriggerDockerArgsProcessBuild(appName, builderType)
case "docker-args-process-deploy":
appName := flag.Arg(0)
processType := flag.Arg(3)