From 3652ae134e22d21decc6447eace446b4be993a23 Mon Sep 17 00:00:00 2001 From: hadestructhor <60148800+hadestructhor@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:45:02 +0100 Subject: [PATCH] feat: benchmark init [SKIP CI] --- .gitignore | 1 + README.md | 38 ++++++- bench_results.nu | 54 ++++++++++ benchmark.md | 6 ++ benchmark.nu | 74 +++++++++++++ build_results/bun-rspack-dockerfile.csv | 101 ++++++++++++++++++ build_results/multi-stage-dockerfile.csv | 101 ++++++++++++++++++ build_results/nginx-alpine-dockerfile.csv | 101 ++++++++++++++++++ build_results/nginx-distroless-dockerfile.csv | 101 ++++++++++++++++++ build_results/nginx-dockerfile.csv | 101 ++++++++++++++++++ build_results/node-alpine-dockerfile.csv | 101 ++++++++++++++++++ build_results/simple-dockerfile.csv | 101 ++++++++++++++++++ bun.lockb | Bin 0 -> 14128 bytes .../bun-rspack-dockerfile.csv | 11 ++ .../multi-stage-dockerfile.csv | 11 ++ .../nginx-alpine-dockerfile.csv | 11 ++ .../nginx-distroless-dockerfile.csv | 11 ++ .../nginx-dockerfile.csv | 11 ++ .../node-alpine-dockerfile.csv | 11 ++ .../simple-dockerfile.csv | 11 ++ test/bun-rspack-dockerfile.csv | 2 + test/nginx-distroless-dockerfile.csv | 2 + 22 files changed, 960 insertions(+), 1 deletion(-) create mode 100644 bench_results.nu create mode 100644 benchmark.md create mode 100644 benchmark.nu create mode 100644 build_results/bun-rspack-dockerfile.csv create mode 100644 build_results/multi-stage-dockerfile.csv create mode 100644 build_results/nginx-alpine-dockerfile.csv create mode 100644 build_results/nginx-distroless-dockerfile.csv create mode 100644 build_results/nginx-dockerfile.csv create mode 100644 build_results/node-alpine-dockerfile.csv create mode 100644 build_results/simple-dockerfile.csv create mode 100644 bun.lockb create mode 100644 test/build_results_2025-01-09_13-42-07/bun-rspack-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/multi-stage-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/nginx-alpine-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/nginx-distroless-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/nginx-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/node-alpine-dockerfile.csv create mode 100644 test/build_results_2025-01-09_13-42-07/simple-dockerfile.csv create mode 100644 test/bun-rspack-dockerfile.csv create mode 100644 test/nginx-distroless-dockerfile.csv diff --git a/.gitignore b/.gitignore index 38d7344..1facdf8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ # Dist node_modules dist/ +/build_results_* # IDE .vscode/* diff --git a/README.md b/README.md index 4dfb550..52809a5 100644 --- a/README.md +++ b/README.md @@ -289,6 +289,24 @@ This is the biggest optimization in image size to date! A 1 998,2 MB less than I personally love distroless images. I've seen people say that you can debug them less, and not having basic tools like a shell is contraining, but I personally think it's not needed. You can simply build both a distroless and alpine image of your same code, then when there's a need to debug, scitch the container image for the alpine version. Or even better, use distroless images in production environments and alpines in development environments. +### Benchmark of build times using docker build --no-cache + +Here's the link to the result of the benchmark made to recreate the image 10 times for each branch that contains each optimization: +[benchmark.md](./benchmark.md) + +The nushell script used to generate this benchmark is [benchmark.nu](./benchmark.nu). + +You can execute the following command to run the build 100 times on each branch: +```shell +nu benchmark.nu 100 +``` + +By default the script runs 5 builds. + +The build results can be found in the folder `build_results` in csv format. + +Each branch that was benchmarked has a file associated named like `simple-dockerfile.csv` for the `simple-dockerfile` branch. + # Français @@ -578,4 +596,22 @@ Et voici la taille des images juste ici : C'est la plus grosse optimisation de taille jusqu'à présent ! Une différence de 1 998,2 MB de moins que l'image original, c'est 63,83 fois plus petit!!! C'est une réduction folle de 98,43% ! Et le meilleur dans tout ça? L'application est beaucoup plus sécurisé !!!!! Personnellement j'adore les images distroless. J'ai vu certaines personnes dire qu'elles sont moins débuggable en n'ayant aucun outil basique comme un bash mais je pense que ce n'est pas nécessaire. -Vous pouvez tout simplement construire une image alpine et distroless de votre application, puis remplacer votre image distroless par l'alpine pour débugger en cas de bug. Ou encore mieux et ce que je fais personnelelement, utiliser une image alpine en environnement de développement et distroless en production. \ No newline at end of file +Vous pouvez tout simplement construire une image alpine et distroless de votre application, puis remplacer votre image distroless par l'alpine pour débugger en cas de bug. Ou encore mieux et ce que je fais personnelelement, utiliser une image alpine en environnement de développement et distroless en production. + +## Benchmark temps de build avec docker build --no-cache + +Voici le lien du benchmark réalisé pour chaque branche en lançant la construction des conteneurs 10 fois: +[benchmark.md](./benchmark.md) + +Le script nushell pour générer ce benchmark se trouve dans [benchmark.nu](./benchmark.nu) + +Vous pouvez l'exécuter en lançant la commande suivante, pour lancer 100 build de chaque docker: +```shell +nu benchmark.nu 100 +``` + +Par défaut le script lance 5 build de chaque image. + +Les résultats de build peuvent être trouvé dans le dossier `build_results` sous le format csv. + +Chaque branche qui a été benchmarké possède un fichier associé sous nommé par exemple `simple-dockerfile.csv` pour la branche `simple-dockerfile`. diff --git a/bench_results.nu b/bench_results.nu new file mode 100644 index 0000000..5f28e3f --- /dev/null +++ b/bench_results.nu @@ -0,0 +1,54 @@ +let bench = [ + ['tag', 'image']; + # ['simple-dockerfile', 'react-simple', + # ['multi-stage-dockerfile', 'react-multistage'], + # ['node-alpine-dockerfile', 'react-multistage-alpine'], + # ['nginx-dockerfile', 'react-nginx'], + # ['nginx-alpine-dockerfile', 'react-nginx-alpine'], + ['bun-rspack-dockerfile', 'react-bun-rspack'], + ['nginx-distroless-dockerfile', 'react-nginx-distroless'] +] + +for entry in $bench { + echo $'Switching to branch ($entry.tag)' + echo '' + git checkout $entry.tag + docker build -t $entry.image . +} + +mut benchmark: table = [] + +git checkout main +for entry: record in $bench { + mut sum = 0ns + mut max = 0ns + mut min = 0ns + + echo $'(ls ./build_results)' + echo ./build_results/($entry.tag).csv + + let bench_res = open ./build_results/($entry.tag).csv + let $benchmark_size = $bench_res | length + for res in $bench_res { + let time = $res | get time | into duration + $sum += $time + if $max == 0ns or $time >= $max { + $max = $time + } + if $min == 0ns or $time <= $min { + $min = $time + } + } + let image_size = docker image ls $entry.image | from ssv | get 0 | get SIZE | into filesize + let row table = [ + ['tag', 'image', 'image_size', 'median_time', 'max_time', 'min_time', 'total_time', 'max_size', 'benchmark_size']; + [$'($entry.tag)', $'($entry.image)', $image_size, ($sum / $benchmark_size), $max, $min, $sum, ($image_size * $benchmark_size), $benchmark_size] + ] + $benchmark = ($benchmark ++ $row) +} + +$benchmark | to md --pretty | save -f benchmark.md + +# git add . +# git commit -m $"updated README for benchmarks (date now | format date '%+') [CI SKIP]" +# git push diff --git a/benchmark.md b/benchmark.md new file mode 100644 index 0000000..877ce9c --- /dev/null +++ b/benchmark.md @@ -0,0 +1,6 @@ +| tag | image | image size | median_time | max_time | min_time | total_time | benchmark_size | +| --------------------------- | ---------------------- | ---------- | ---------------------------- | ----------------------------- | ----------------------- | ---------------------------------- | -------------- | +| nginx-dockerfile | react-nginx | 280MB | 1min 5sec 674ms 334µs 527ns | 1min 13sec 34ms 707µs | 1min 532ms 286µs 400ns | 1hr 49min 27sec 433ms 452µs 700ns | 100 | +| nginx-alpine-dockerfile | react-nginx-alpine | 67.7MB | 1min 5sec 958ms 589µs 979ns | 1min 14sec 620ms 588µs 300ns | 1min 1ms 937µs 300ns | 1hr 49min 55sec 858ms 997µs 900ns | 100 | +| bun-rspack-dockerfile | react-bun-rspack | 66.5MB | 12sec 156ms 17µs 808ns | 25sec 111ms 658µs 400ns | 9sec 286ms 821µs 500ns | 20min 15sec 601ms 780µs 800ns | 100 | +| nginx-distroless-dockerfile | react-nginx-distroless | 31.8MB | 11sec 127ms 777µs 473ns | 25sec 303ms 426µs 700ns | 8sec 869ms 365µs 800ns | 18min 32sec 777ms 747µs 300ns | 100 | \ No newline at end of file diff --git a/benchmark.nu b/benchmark.nu new file mode 100644 index 0000000..0c087ea --- /dev/null +++ b/benchmark.nu @@ -0,0 +1,74 @@ +def main [benchmark_size:int=5] { + let date = date now | format date '%F_%H-%M-%S' + let res_dir = $'build_results_($date)' + mkdir $res_dir + let bench = [ + ['tag', 'image']; + ['simple-dockerfile', 'react-simple'], + ['multi-stage-dockerfile', 'react-multistage'], + ['node-alpine-dockerfile', 'react-multistage-alpine'], + ['nginx-dockerfile', 'react-nginx'], + ['nginx-alpine-dockerfile', 'react-nginx-alpine'], + ['bun-rspack-dockerfile', 'react-bun-rspack'], + ['nginx-distroless-dockerfile', 'react-nginx-distroless'] + ] + + let images = [ + 'node:18', + 'node:18-alpine' + 'nginx', + 'nginx:stable-alpine', + 'oven/bun', + 'cgr.dev/chainguard/nginx' + ] + + echo 'Pulling all docker images in advance' + echo '' + + for entry in $images { + docker pull $entry + echo '' + } + echo '' + + mut benchmark: table = [] + + for entry: record in $bench { + echo $'Switching to branch ($entry.tag)' + echo '' + git checkout $entry.tag + mut sum = 0ns + mut max = 0ns + mut min = 0ns + mut csv_results = [] + for i in 1..$benchmark_size { + echo $'Build ($i) out of ($benchmark_size) for branch ($entry.tag)' + let time = $'(timeit {docker build --no-cache -t $entry.image .})' | into duration + if $i < $benchmark_size { + docker image rm $'($entry.image)' + docker builder prune -af + } + $sum += $time + + if $max == 0ns or $time >= $max { + $max = $time + } + if $min == 0ns or $time <= $min { + $min = $time + } + $csv_results = ($csv_results ++ [['tag', 'image', 'time']; [$entry.tag, $entry.image, $time]]) + } + docker image rm $'($entry.image)' + docker builder prune -af + echo $'Finieshed building ($benchmark_size) images for branch ($entry.tag)' + echo $'Results for branch ($entry.tag):' + echo $csv_results + $csv_results | to csv | save -f $'./($res_dir)/($entry.tag).csv' + + echo '' + } + + git checkout main + $benchmark | to md --pretty | save -f benchmark.md + cp -rf $'./($res_dir)/' $'./build_results' +} diff --git a/build_results/bun-rspack-dockerfile.csv b/build_results/bun-rspack-dockerfile.csv new file mode 100644 index 0000000..33598f8 --- /dev/null +++ b/build_results/bun-rspack-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +bun-rspack-dockerfile,react-bun-rspack,11sec 230ms 375µs 500ns +bun-rspack-dockerfile,react-bun-rspack,13sec 321ms 31µs 900ns +bun-rspack-dockerfile,react-bun-rspack,10sec 253ms 603µs 900ns +bun-rspack-dockerfile,react-bun-rspack,19sec 462ms 735µs 400ns +bun-rspack-dockerfile,react-bun-rspack,10sec 372ms 312µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 641ms 630µs 300ns +bun-rspack-dockerfile,react-bun-rspack,9sec 679ms 957µs 700ns +bun-rspack-dockerfile,react-bun-rspack,19sec 967ms 128µs 800ns +bun-rspack-dockerfile,react-bun-rspack,10sec 449ms 327µs 900ns +bun-rspack-dockerfile,react-bun-rspack,10sec 214ms 886µs +bun-rspack-dockerfile,react-bun-rspack,18sec 908ms 427µs +bun-rspack-dockerfile,react-bun-rspack,10sec 252ms 988µs 300ns +bun-rspack-dockerfile,react-bun-rspack,10sec 424ms 96µs 800ns +bun-rspack-dockerfile,react-bun-rspack,23sec 491ms 81µs 500ns +bun-rspack-dockerfile,react-bun-rspack,11sec 682ms 646µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 592ms 280µs +bun-rspack-dockerfile,react-bun-rspack,9sec 515ms 216µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 805ms 73µs 900ns +bun-rspack-dockerfile,react-bun-rspack,19sec 810ms 396µs 300ns +bun-rspack-dockerfile,react-bun-rspack,10sec 542ms 71µs 500ns +bun-rspack-dockerfile,react-bun-rspack,9sec 650ms 91µs 700ns +bun-rspack-dockerfile,react-bun-rspack,17sec 983ms 953µs 900ns +bun-rspack-dockerfile,react-bun-rspack,19sec 174ms 346µs 600ns +bun-rspack-dockerfile,react-bun-rspack,10sec 64ms 461µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 411ms 266µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 411ms 19µs 500ns +bun-rspack-dockerfile,react-bun-rspack,10sec 99ms 436µs 400ns +bun-rspack-dockerfile,react-bun-rspack,20sec 494ms 550µs 500ns +bun-rspack-dockerfile,react-bun-rspack,11sec 95ms 770µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 344ms 230µs +bun-rspack-dockerfile,react-bun-rspack,9sec 527ms 221µs 500ns +bun-rspack-dockerfile,react-bun-rspack,9sec 595ms 316µs 500ns +bun-rspack-dockerfile,react-bun-rspack,19sec 914ms 572µs 300ns +bun-rspack-dockerfile,react-bun-rspack,15sec 249ms 570µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 735ms 797µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 967ms 349µs 300ns +bun-rspack-dockerfile,react-bun-rspack,20sec 832ms 829µs 500ns +bun-rspack-dockerfile,react-bun-rspack,10sec 590ms 871µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 466ms 514µs 100ns +bun-rspack-dockerfile,react-bun-rspack,9sec 820ms 883µs 300ns +bun-rspack-dockerfile,react-bun-rspack,20sec 261ms 795µs 900ns +bun-rspack-dockerfile,react-bun-rspack,10sec 216ms 560µs 900ns +bun-rspack-dockerfile,react-bun-rspack,10sec 308ms 426µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 569ms 567µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 449ms 240µs 100ns +bun-rspack-dockerfile,react-bun-rspack,10sec 479ms 454µs 400ns +bun-rspack-dockerfile,react-bun-rspack,25sec 111ms 658µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 933ms 11µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 747ms 407µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 688ms 24µs +bun-rspack-dockerfile,react-bun-rspack,9sec 335ms 836µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 793ms 308µs 300ns +bun-rspack-dockerfile,react-bun-rspack,23sec 967ms 954µs 400ns +bun-rspack-dockerfile,react-bun-rspack,10sec 525ms 765µs +bun-rspack-dockerfile,react-bun-rspack,9sec 612ms 210µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 596ms 453µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 313ms 696µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 411ms 890µs 400ns +bun-rspack-dockerfile,react-bun-rspack,10sec 221ms 602µs 900ns +bun-rspack-dockerfile,react-bun-rspack,19sec 581ms 896µs 500ns +bun-rspack-dockerfile,react-bun-rspack,10sec 375ms 36µs 600ns +bun-rspack-dockerfile,react-bun-rspack,9sec 418ms 609µs 600ns +bun-rspack-dockerfile,react-bun-rspack,10sec 136ms 569µs +bun-rspack-dockerfile,react-bun-rspack,10sec 6ms 296µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 667ms 997µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 406ms 268µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 859ms 590µs 200ns +bun-rspack-dockerfile,react-bun-rspack,18sec 348ms 511µs 800ns +bun-rspack-dockerfile,react-bun-rspack,18sec 975ms 994µs 300ns +bun-rspack-dockerfile,react-bun-rspack,9sec 496ms 501µs 300ns +bun-rspack-dockerfile,react-bun-rspack,9sec 830ms 385µs +bun-rspack-dockerfile,react-bun-rspack,9sec 470ms 187µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 545ms 228µs 900ns +bun-rspack-dockerfile,react-bun-rspack,19sec 471ms 20µs 300ns +bun-rspack-dockerfile,react-bun-rspack,13sec 620ms 936µs 100ns +bun-rspack-dockerfile,react-bun-rspack,9sec 587ms 848µs +bun-rspack-dockerfile,react-bun-rspack,9sec 655ms 13µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 705ms 824µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 835ms 292µs 700ns +bun-rspack-dockerfile,react-bun-rspack,19sec 960ms 823µs 500ns +bun-rspack-dockerfile,react-bun-rspack,10sec 286ms 967µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 667ms 600µs 500ns +bun-rspack-dockerfile,react-bun-rspack,9sec 543ms 655µs 300ns +bun-rspack-dockerfile,react-bun-rspack,9sec 533ms 4µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 576ms 767µs 800ns +bun-rspack-dockerfile,react-bun-rspack,10sec 119ms 85µs 200ns +bun-rspack-dockerfile,react-bun-rspack,23sec 357ms 263µs 800ns +bun-rspack-dockerfile,react-bun-rspack,11sec 574ms 132µs 900ns +bun-rspack-dockerfile,react-bun-rspack,9sec 726ms 831µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 718ms 485µs 700ns +bun-rspack-dockerfile,react-bun-rspack,9sec 756ms 637µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 969ms 977µs 400ns +bun-rspack-dockerfile,react-bun-rspack,9sec 950ms 380µs +bun-rspack-dockerfile,react-bun-rspack,20sec 925ms 276µs 700ns +bun-rspack-dockerfile,react-bun-rspack,11sec 613ms 722µs 200ns +bun-rspack-dockerfile,react-bun-rspack,9sec 486ms 65µs 600ns +bun-rspack-dockerfile,react-bun-rspack,9sec 397ms 632µs 500ns +bun-rspack-dockerfile,react-bun-rspack,9sec 286ms 821µs 500ns +bun-rspack-dockerfile,react-bun-rspack,9sec 714ms 724µs 300ns +bun-rspack-dockerfile,react-bun-rspack,9sec 849ms 728µs 600ns diff --git a/build_results/multi-stage-dockerfile.csv b/build_results/multi-stage-dockerfile.csv new file mode 100644 index 0000000..1782079 --- /dev/null +++ b/build_results/multi-stage-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +multi-stage-dockerfile,react-multistage,1min 10sec 24ms 312µs 100ns +multi-stage-dockerfile,react-multistage,1min 13sec 989ms 802µs 500ns +multi-stage-dockerfile,react-multistage,1min 13sec 17ms 880µs 500ns +multi-stage-dockerfile,react-multistage,1min 14sec 43ms 780µs 900ns +multi-stage-dockerfile,react-multistage,1min 11sec 669ms 715µs 200ns +multi-stage-dockerfile,react-multistage,1min 5sec 816ms 655µs 900ns +multi-stage-dockerfile,react-multistage,1min 6sec 995ms 959µs 600ns +multi-stage-dockerfile,react-multistage,1min 15sec 324ms 332µs +multi-stage-dockerfile,react-multistage,1min 13sec 839ms 178µs 500ns +multi-stage-dockerfile,react-multistage,1min 12sec 843ms 127µs +multi-stage-dockerfile,react-multistage,1min 11sec 516ms 523µs 500ns +multi-stage-dockerfile,react-multistage,1min 8sec 836ms 987µs 100ns +multi-stage-dockerfile,react-multistage,1min 7sec 470ms 129µs 600ns +multi-stage-dockerfile,react-multistage,1min 11sec 733ms 84µs 200ns +multi-stage-dockerfile,react-multistage,1min 14sec 272ms 901µs +multi-stage-dockerfile,react-multistage,1min 9sec 44ms 281µs 500ns +multi-stage-dockerfile,react-multistage,1min 6sec 47ms 108µs 500ns +multi-stage-dockerfile,react-multistage,1min 14sec 560ms 771µs 400ns +multi-stage-dockerfile,react-multistage,1min 13sec 857ms 50µs +multi-stage-dockerfile,react-multistage,1min 13sec 293ms 573µs 700ns +multi-stage-dockerfile,react-multistage,1min 6sec 500ms 804µs 300ns +multi-stage-dockerfile,react-multistage,1min 14sec 626ms 317µs 600ns +multi-stage-dockerfile,react-multistage,1min 14sec 441ms 933µs 400ns +multi-stage-dockerfile,react-multistage,1min 15sec 866ms 781µs 900ns +multi-stage-dockerfile,react-multistage,1min 10sec 504ms 977µs 300ns +multi-stage-dockerfile,react-multistage,1min 7sec 59ms 178µs 400ns +multi-stage-dockerfile,react-multistage,1min 15sec 26ms 370µs 700ns +multi-stage-dockerfile,react-multistage,1min 14sec 173ms 228µs 600ns +multi-stage-dockerfile,react-multistage,1min 9sec 883ms 866µs 100ns +multi-stage-dockerfile,react-multistage,1min 6sec 394ms 648µs 400ns +multi-stage-dockerfile,react-multistage,1min 8sec 334ms 942µs 500ns +multi-stage-dockerfile,react-multistage,1min 8sec 670ms 845µs 400ns +multi-stage-dockerfile,react-multistage,1min 12sec 483ms 764µs 100ns +multi-stage-dockerfile,react-multistage,1min 14sec 444ms 669µs 500ns +multi-stage-dockerfile,react-multistage,1min 8sec 636ms 813µs 300ns +multi-stage-dockerfile,react-multistage,1min 5sec 929ms 602µs +multi-stage-dockerfile,react-multistage,1min 14sec 876ms 973µs 600ns +multi-stage-dockerfile,react-multistage,1min 17sec 244ms 743µs 700ns +multi-stage-dockerfile,react-multistage,1min 15sec 58ms 23µs 300ns +multi-stage-dockerfile,react-multistage,1min 9sec 818ms 944µs 400ns +multi-stage-dockerfile,react-multistage,1min 5sec 832ms 409µs +multi-stage-dockerfile,react-multistage,1min 6sec 480ms 787µs 500ns +multi-stage-dockerfile,react-multistage,1min 14sec 936ms 338µs 500ns +multi-stage-dockerfile,react-multistage,1min 9sec 161ms 438µs 700ns +multi-stage-dockerfile,react-multistage,1min 5sec 904ms 551µs 700ns +multi-stage-dockerfile,react-multistage,1min 16sec 549ms 300µs 700ns +multi-stage-dockerfile,react-multistage,1min 17sec 117ms 827µs 500ns +multi-stage-dockerfile,react-multistage,1min 18sec 768ms 415µs 600ns +multi-stage-dockerfile,react-multistage,1min 25sec 374ms 160µs 500ns +multi-stage-dockerfile,react-multistage,2min 7sec 376ms 770µs 200ns +multi-stage-dockerfile,react-multistage,1min 16sec 595ms 736µs 200ns +multi-stage-dockerfile,react-multistage,1min 15sec 562ms 724µs 500ns +multi-stage-dockerfile,react-multistage,1min 15sec 822ms 985µs 100ns +multi-stage-dockerfile,react-multistage,1min 16sec 153ms 925µs 900ns +multi-stage-dockerfile,react-multistage,1min 9sec 39ms 338µs 400ns +multi-stage-dockerfile,react-multistage,1min 5sec 159ms 386µs 100ns +multi-stage-dockerfile,react-multistage,1min 6sec 928ms 203µs 700ns +multi-stage-dockerfile,react-multistage,1min 14sec 420ms 454µs 800ns +multi-stage-dockerfile,react-multistage,1min 15sec 521ms 245µs +multi-stage-dockerfile,react-multistage,1min 14sec 690ms 988µs 200ns +multi-stage-dockerfile,react-multistage,1min 6sec 136ms 225µs 300ns +multi-stage-dockerfile,react-multistage,1min 14sec 318ms 22µs 100ns +multi-stage-dockerfile,react-multistage,1min 16sec 966ms 3µs 500ns +multi-stage-dockerfile,react-multistage,1min 16sec 657ms 744µs 800ns +multi-stage-dockerfile,react-multistage,1min 12sec 262ms 150µs 500ns +multi-stage-dockerfile,react-multistage,1min 13sec 812ms 374µs 600ns +multi-stage-dockerfile,react-multistage,1min 14sec 340ms 791µs 800ns +multi-stage-dockerfile,react-multistage,1min 14sec 876ms 37µs +multi-stage-dockerfile,react-multistage,1min 9sec 976ms 428µs 900ns +multi-stage-dockerfile,react-multistage,1min 6sec 70ms 713µs 500ns +multi-stage-dockerfile,react-multistage,1min 6sec 549ms 227µs 300ns +multi-stage-dockerfile,react-multistage,1min 20sec 661ms 966µs 900ns +multi-stage-dockerfile,react-multistage,1min 17sec 18ms 972µs 100ns +multi-stage-dockerfile,react-multistage,1min 8sec 887ms 819µs 100ns +multi-stage-dockerfile,react-multistage,1min 6sec 45ms 256µs 400ns +multi-stage-dockerfile,react-multistage,1min 14sec 998ms 9µs 400ns +multi-stage-dockerfile,react-multistage,1min 16sec 134ms 500µs +multi-stage-dockerfile,react-multistage,1min 17sec 182ms 505µs 200ns +multi-stage-dockerfile,react-multistage,1min 9sec 88ms 129µs 400ns +multi-stage-dockerfile,react-multistage,1min 5sec 898ms 654µs 900ns +multi-stage-dockerfile,react-multistage,1min 7sec 732ms 994µs 400ns +multi-stage-dockerfile,react-multistage,1min 8sec 311ms 490µs 600ns +multi-stage-dockerfile,react-multistage,1min 14sec 268ms 725µs 700ns +multi-stage-dockerfile,react-multistage,1min 10sec 359ms 673µs 700ns +multi-stage-dockerfile,react-multistage,1min 6sec 872ms 155µs 900ns +multi-stage-dockerfile,react-multistage,1min 9sec 41ms 228µs 600ns +multi-stage-dockerfile,react-multistage,1min 11sec 981ms 817µs 900ns +multi-stage-dockerfile,react-multistage,1min 15sec 768ms 936µs 500ns +multi-stage-dockerfile,react-multistage,1min 13sec 441ms 423µs 600ns +multi-stage-dockerfile,react-multistage,1min 13sec 67ms 728µs 600ns +multi-stage-dockerfile,react-multistage,1min 6sec 437ms 615µs 500ns +multi-stage-dockerfile,react-multistage,1min 7sec 395ms 877µs 600ns +multi-stage-dockerfile,react-multistage,1min 15sec 456ms 742µs 200ns +multi-stage-dockerfile,react-multistage,1min 15sec 488ms 988µs 200ns +multi-stage-dockerfile,react-multistage,1min 8sec 815ms 52µs 400ns +multi-stage-dockerfile,react-multistage,1min 5sec 993ms 191µs 400ns +multi-stage-dockerfile,react-multistage,1min 7sec 443ms 920µs 600ns +multi-stage-dockerfile,react-multistage,1min 13sec 371ms 798µs +multi-stage-dockerfile,react-multistage,1min 13sec 672ms 629µs 300ns +multi-stage-dockerfile,react-multistage,1min 7sec 234ms 420µs 400ns diff --git a/build_results/nginx-alpine-dockerfile.csv b/build_results/nginx-alpine-dockerfile.csv new file mode 100644 index 0000000..c420b3f --- /dev/null +++ b/build_results/nginx-alpine-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 906ms 346µs 900ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 876ms 921µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 887ms 513µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 221ms 644µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 548ms 203µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 14sec 620ms 588µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 97ms 849µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 961ms 159µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 365ms 249µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 695ms 844µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 13sec 176ms 634µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 881ms 460µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 886ms 416µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 321ms 617µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 6sec 827ms 854µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 470ms 239µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 857ms 413µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 850ms 694µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 494ms 998µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 295ms 783µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 880ms 736µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 6sec 254ms 72µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 302ms 535µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 831ms 522µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 526ms 616µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1ms 937µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 995ms 863µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 499ms 219µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 412ms 140µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 752ms 270µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 68ms 190µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 577ms 101µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 4sec 103ms 245µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 695ms 437µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 602ms 115µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 239ms 440µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 441ms 851µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 660ms 527µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 777ms 494µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 971ms 130µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 345ms 502µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 856ms 632µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 685ms 835µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 836ms 808µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 83ms 61µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 780ms 580µs 900ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 839ms 318µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 302ms 528µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 194ms 959µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 215ms 308µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 943ms 724µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 580ms 885µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 456ms 970µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 177ms 687µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 160ms 447µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 761ms 610µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 11sec 955ms 927µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 187ms 18µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 4sec 155ms 605µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 149ms 711µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 12ms 476µs 900ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 584ms 348µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 242ms 420µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 148ms 162µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 843ms 71µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 90ms 442µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 736ms 322µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 943ms 985µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 222ms 331µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 693ms 897µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 346ms 932µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 763ms 728µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 330ms 967µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 331ms 167µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 348ms 184µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 847ms 359µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 799ms 526µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 733ms 809µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 992ms 413µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 343ms 428µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 636ms 229µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 813ms 158µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 46ms 568µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 557ms 867µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 934ms 460µs 900ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 3sec 33ms 799µs 600ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 6sec 28ms 459µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 964ms 398µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 556ms 258µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 1sec 338ms 861µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 54ms 890µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 219ms 308µs 300ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 2sec 639ms 216µs 800ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 11ms 760µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 742ms 596µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 319ms 407µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 455ms 290µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 9sec 226ms 720µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 7sec 629ms 695µs 100ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 8sec 787ms 73µs 300ns diff --git a/build_results/nginx-distroless-dockerfile.csv b/build_results/nginx-distroless-dockerfile.csv new file mode 100644 index 0000000..d050a6b --- /dev/null +++ b/build_results/nginx-distroless-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +nginx-distroless-dockerfile,react-nginx-distroless,22sec 210ms 174µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 502ms 852µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 205ms 316µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 113ms 794µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 151ms 652µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 200ms 410µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 450ms 763µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,23sec 207ms 601µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,11sec 302ms 34µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 247ms 136µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 146ms 616µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 87ms 110µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 290ms 227µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 992ms 508µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 489ms 910µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,20sec 998ms 174µs +nginx-distroless-dockerfile,react-nginx-distroless,10sec 525ms 829µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 127ms 107µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 160ms 103µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 98ms 246µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 98ms 925µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,18sec 147ms 883µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 239ms 519µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 463µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 133ms 349µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 278ms 397µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 178ms 936µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,18sec 216ms 2µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,12sec 835ms 216µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 328ms 687µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 260ms 491µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 886ms 141µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 257ms 941µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 663ms 2µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,21sec 767ms 600µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 802ms 266µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 362ms 453µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 218ms 945µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 84ms 772µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 159ms 91µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 196ms 896µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,19sec 680ms 249µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,14sec 267ms 590µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 33ms 784µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 14ms 316µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 55ms 764µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 362ms 463µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 632ms 215µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,22sec 114ms 183µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 828ms 418µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 66ms 264µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 547ms 188µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 990ms 809µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 341ms 414µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 729ms 505µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,19sec 628ms 467µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 961ms 656µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 293ms 402µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 62ms 269µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 209ms 605µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 265ms 341µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 491ms 385µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,19sec 962ms 957µs +nginx-distroless-dockerfile,react-nginx-distroless,14sec 503ms 996µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 224ms 179µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 208ms 389µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 340ms 751µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 170ms 316µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 1ms 661µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 521ms 773µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,25sec 303ms 426µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 370ms 476µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 284ms 26µs +nginx-distroless-dockerfile,react-nginx-distroless,9sec 89ms 108µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 869ms 365µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 973ms 328µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 941ms 764µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,18sec 577ms 29µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,11sec 387ms 899µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 25ms 849µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 463ms 317µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 7ms 120µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 188ms 807µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 231ms 790µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 3ms 520µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,21sec 183ms 490µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 173ms 28µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,8sec 994ms 313µs 500ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 161ms 51µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 182ms 689µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 106ms 876µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 302ms 13µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 46ms 545µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 475ms 329µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,19sec 404ms 486µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,10sec 89ms 451µs 200ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 154ms 856µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 120ms 387µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 217ms 840µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,9sec 313ms 678µs 200ns diff --git a/build_results/nginx-dockerfile.csv b/build_results/nginx-dockerfile.csv new file mode 100644 index 0000000..addb36b --- /dev/null +++ b/build_results/nginx-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +nginx-dockerfile,react-nginx,1min 5sec 493ms 107µs 700ns +nginx-dockerfile,react-nginx,1min 4sec 329ms 307µs +nginx-dockerfile,react-nginx,1min 2sec 299ms 614µs 600ns +nginx-dockerfile,react-nginx,1min 10sec 386ms 515µs +nginx-dockerfile,react-nginx,1min 10sec 433ms 75µs 700ns +nginx-dockerfile,react-nginx,1min 889ms 181µs 100ns +nginx-dockerfile,react-nginx,1min 2sec 922ms 520µs 600ns +nginx-dockerfile,react-nginx,1min 9sec 772ms 337µs 400ns +nginx-dockerfile,react-nginx,1min 9sec 161ms 149µs 700ns +nginx-dockerfile,react-nginx,1min 2sec 698ms 293µs 200ns +nginx-dockerfile,react-nginx,1min 2sec 642ms 563µs 600ns +nginx-dockerfile,react-nginx,1min 1sec 651ms 145µs 700ns +nginx-dockerfile,react-nginx,1min 3sec 858ms 899µs 700ns +nginx-dockerfile,react-nginx,1min 3sec 850ms 633µs 100ns +nginx-dockerfile,react-nginx,1min 1sec 221ms 252µs 200ns +nginx-dockerfile,react-nginx,1min 9sec 615ms 593µs 700ns +nginx-dockerfile,react-nginx,1min 1sec 997ms 358µs 800ns +nginx-dockerfile,react-nginx,1min 2sec 567ms 192µs 700ns +nginx-dockerfile,react-nginx,1min 8sec 238ms 339µs 100ns +nginx-dockerfile,react-nginx,1min 11sec 322ms 868µs 800ns +nginx-dockerfile,react-nginx,1min 2sec 174ms 96µs 400ns +nginx-dockerfile,react-nginx,1min 3sec 111ms 60µs 100ns +nginx-dockerfile,react-nginx,1min 10sec 438ms 249µs 100ns +nginx-dockerfile,react-nginx,1min 10sec 324ms 796µs 400ns +nginx-dockerfile,react-nginx,1min 697ms 700µs +nginx-dockerfile,react-nginx,1min 11sec 405ms 442µs 800ns +nginx-dockerfile,react-nginx,1min 9sec 692ms 157µs 900ns +nginx-dockerfile,react-nginx,1min 654ms 259µs 100ns +nginx-dockerfile,react-nginx,1min 9sec 465ms 885µs 600ns +nginx-dockerfile,react-nginx,1min 7sec 931ms 252µs 900ns +nginx-dockerfile,react-nginx,1min 8sec 944ms 226µs 800ns +nginx-dockerfile,react-nginx,1min 7sec 157ms 923µs 300ns +nginx-dockerfile,react-nginx,1min 632ms 890µs 600ns +nginx-dockerfile,react-nginx,1min 11sec 388ms 22µs 200ns +nginx-dockerfile,react-nginx,1min 10sec 538ms 63µs 400ns +nginx-dockerfile,react-nginx,1min 9sec 877ms 311µs 700ns +nginx-dockerfile,react-nginx,1min 3sec 489ms 959µs 900ns +nginx-dockerfile,react-nginx,1min 2sec 714ms 320µs 300ns +nginx-dockerfile,react-nginx,1min 10sec 407ms 343µs 900ns +nginx-dockerfile,react-nginx,1min 9sec 886ms 231µs +nginx-dockerfile,react-nginx,1min 532ms 286µs 400ns +nginx-dockerfile,react-nginx,1min 2sec 655ms 948µs +nginx-dockerfile,react-nginx,1min 10sec 169ms 210µs +nginx-dockerfile,react-nginx,1min 9sec 125ms 500µs +nginx-dockerfile,react-nginx,1min 2sec 32ms 1µs 700ns +nginx-dockerfile,react-nginx,1min 4sec 32ms 797µs +nginx-dockerfile,react-nginx,1min 2sec 110ms 346µs 400ns +nginx-dockerfile,react-nginx,1min 1sec 861ms 246µs +nginx-dockerfile,react-nginx,1min 1sec 236ms 529µs 300ns +nginx-dockerfile,react-nginx,1min 1sec 926ms 514µs 300ns +nginx-dockerfile,react-nginx,1min 2sec 562ms 489µs 400ns +nginx-dockerfile,react-nginx,1min 9sec 48ms 668µs 400ns +nginx-dockerfile,react-nginx,1min 11sec 545ms 34µs 100ns +nginx-dockerfile,react-nginx,1min 10sec 576ms 264µs 200ns +nginx-dockerfile,react-nginx,1min 10sec 918ms 610µs 200ns +nginx-dockerfile,react-nginx,1min 5sec 70ms 632µs 400ns +nginx-dockerfile,react-nginx,1min 4sec 681ms 186µs 600ns +nginx-dockerfile,react-nginx,1min 10sec 610ms 189µs +nginx-dockerfile,react-nginx,1min 3sec 45ms 593µs 100ns +nginx-dockerfile,react-nginx,1min 3sec 879ms 374µs 900ns +nginx-dockerfile,react-nginx,1min 802ms 374µs 800ns +nginx-dockerfile,react-nginx,1min 10sec 812ms 410µs 900ns +nginx-dockerfile,react-nginx,1min 10sec 67ms 101µs 800ns +nginx-dockerfile,react-nginx,1min 897ms 992µs 800ns +nginx-dockerfile,react-nginx,1min 13sec 34ms 707µs +nginx-dockerfile,react-nginx,1min 2sec 873ms 713µs +nginx-dockerfile,react-nginx,1min 2sec 421ms 767µs 200ns +nginx-dockerfile,react-nginx,1min 9sec 452ms 136µs 300ns +nginx-dockerfile,react-nginx,1min 1sec 831ms 870µs 500ns +nginx-dockerfile,react-nginx,1min 3sec 392ms 687µs 800ns +nginx-dockerfile,react-nginx,1min 9sec 260ms 330µs 700ns +nginx-dockerfile,react-nginx,1min 853ms 141µs +nginx-dockerfile,react-nginx,1min 9sec 338ms 274µs 500ns +nginx-dockerfile,react-nginx,1min 9sec 663ms 818µs +nginx-dockerfile,react-nginx,1min 8sec 918ms 453µs 400ns +nginx-dockerfile,react-nginx,1min 2sec 70ms 713µs +nginx-dockerfile,react-nginx,1min 3sec 110ms 506µs 300ns +nginx-dockerfile,react-nginx,1min 10sec 721ms 230µs 500ns +nginx-dockerfile,react-nginx,1min 3sec 173ms 37µs 800ns +nginx-dockerfile,react-nginx,1min 2sec 448ms 248µs 700ns +nginx-dockerfile,react-nginx,1min 871ms 270µs 800ns +nginx-dockerfile,react-nginx,1min 10sec 153ms 199µs 800ns +nginx-dockerfile,react-nginx,1min 2sec 290ms 792µs 100ns +nginx-dockerfile,react-nginx,1min 2sec 655ms 922µs 900ns +nginx-dockerfile,react-nginx,1min 8sec 944ms 17µs +nginx-dockerfile,react-nginx,1min 7sec 868ms 333µs 200ns +nginx-dockerfile,react-nginx,1min 1sec 117ms 275µs 700ns +nginx-dockerfile,react-nginx,1min 533ms 455µs 400ns +nginx-dockerfile,react-nginx,1min 8sec 88ms 562µs 400ns +nginx-dockerfile,react-nginx,1min 2sec 145ms 638µs 800ns +nginx-dockerfile,react-nginx,1min 3sec 705ms 729µs 700ns +nginx-dockerfile,react-nginx,1min 2sec 271ms 556µs 800ns +nginx-dockerfile,react-nginx,1min 9sec 335ms 588µs +nginx-dockerfile,react-nginx,1min 2sec 677ms 96µs 600ns +nginx-dockerfile,react-nginx,1min 2sec 760ms 760µs 300ns +nginx-dockerfile,react-nginx,1min 9sec 628ms 348µs 300ns +nginx-dockerfile,react-nginx,1min 1sec 815ms 655µs 400ns +nginx-dockerfile,react-nginx,1min 2sec 84ms 102µs 800ns +nginx-dockerfile,react-nginx,1min 10sec 482ms 38µs 500ns +nginx-dockerfile,react-nginx,1min 8sec 957ms 28µs diff --git a/build_results/node-alpine-dockerfile.csv b/build_results/node-alpine-dockerfile.csv new file mode 100644 index 0000000..01807cb --- /dev/null +++ b/build_results/node-alpine-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +node-alpine-dockerfile,react-multistage-alpine,1min 10sec 351ms 884µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 619ms 576µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 23ms 824µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 497ms 177µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 11sec 356ms 673µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 857ms 304µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 392ms 565µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 931ms 306µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 587ms 467µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 743ms 543µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 294ms 455µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 733ms 377µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 287ms 873µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 123ms 158µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 564ms 166µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 11sec 25ms 188µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 889ms 753µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 951ms 88µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 185ms 745µs +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 652ms 348µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 673ms 315µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 311ms 84µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 784ms 326µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 773ms 285µs +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 204ms 263µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 708ms 37µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 11sec 527ms 774µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 629ms 679µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 143ms 312µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 14sec 700ms 600µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 10sec 313ms 215µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 11sec 706ms 237µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 904ms 338µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 765ms 316µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 131ms 524µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 760ms 280µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 10sec 418ms 658µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 485ms 318µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 619ms 700µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 10sec 730ms 717µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 357ms 160µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 335ms 614µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 922ms 191µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 591ms 189µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 562ms 666µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 10sec 34ms 781µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 897ms 457µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 76ms 29µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 45ms 801µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 204ms 297µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 390ms 98µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 13sec 958ms 989µs +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 284ms 722µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 12ms 293µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 4ms 146µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 919ms 32µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 261ms 26µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 642ms 482µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 470ms 27µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 212ms 473µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 281ms 706µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 389ms 59µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 99ms 120µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 236ms 838µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 13sec 802ms 968µs +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 78ms 403µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 342ms 578µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 770ms 813µs +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 738ms 82µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 58ms 453µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 209ms 465µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 11sec 142ms 755µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 81ms 442µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 56ms 735µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 958ms 272µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 218ms 828µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 586ms 540µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 475ms 613µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 9sec 990ms 916µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 175ms 845µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 974ms 176µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 240ms 600µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 12sec 105ms 399µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 7sec 756ms 638µs 500ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 933ms 976µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 13sec 546ms 871µs +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 803ms 373µs 200ns +node-alpine-dockerfile,react-multistage-alpine,1min 17sec 78ms 152µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 657ms 895µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 902ms 805µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 878ms 922µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 969ms 82µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 15sec 822ms 10µs 900ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 722ms 240µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 14sec 713ms 903µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 12sec 214ms 947µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 203ms 252µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 8sec 113ms 784µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 21sec 7ms 324µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 16sec 753ms 346µs 500ns diff --git a/build_results/simple-dockerfile.csv b/build_results/simple-dockerfile.csv new file mode 100644 index 0000000..a1039ab --- /dev/null +++ b/build_results/simple-dockerfile.csv @@ -0,0 +1,101 @@ +tag,image,time +simple-dockerfile,react-simple,1min 12sec 337ms 503µs 100ns +simple-dockerfile,react-simple,3min 42sec 85ms 642µs 600ns +simple-dockerfile,react-simple,1min 13sec 21ms 785µs 800ns +simple-dockerfile,react-simple,1min 25sec 172ms 726µs 600ns +simple-dockerfile,react-simple,1min 12sec 141ms 796µs 700ns +simple-dockerfile,react-simple,1min 30sec 410ms 726µs 900ns +simple-dockerfile,react-simple,1min 33sec 776ms 389µs 700ns +simple-dockerfile,react-simple,1min 10sec 753ms 409µs 200ns +simple-dockerfile,react-simple,1min 45sec 105ms 200µs 100ns +simple-dockerfile,react-simple,6min 45sec 168ms 333µs 800ns +simple-dockerfile,react-simple,1min 23sec 201ms 514µs +simple-dockerfile,react-simple,1min 21sec 38ms 545µs +simple-dockerfile,react-simple,1min 12sec 809ms 191µs 600ns +simple-dockerfile,react-simple,1min 24sec 267ms 938µs +simple-dockerfile,react-simple,1min 27sec 890ms 883µs +simple-dockerfile,react-simple,1min 33sec 644ms 149µs 800ns +simple-dockerfile,react-simple,1min 27sec 33ms 332µs 100ns +simple-dockerfile,react-simple,1min 23sec 689ms 644µs 200ns +simple-dockerfile,react-simple,1min 22sec 127ms 882µs 400ns +simple-dockerfile,react-simple,1min 13sec 172ms 973µs 100ns +simple-dockerfile,react-simple,1min 23sec 26ms 139µs +simple-dockerfile,react-simple,1min 10sec 870ms 366µs 300ns +simple-dockerfile,react-simple,1min 27sec 713ms 648µs 100ns +simple-dockerfile,react-simple,1min 13sec 968ms 970µs 400ns +simple-dockerfile,react-simple,1min 23sec 542ms 681µs 100ns +simple-dockerfile,react-simple,1min 23sec 36ms 360µs 600ns +simple-dockerfile,react-simple,1min 11sec 354ms 560µs 100ns +simple-dockerfile,react-simple,1min 17sec 676ms 330µs 900ns +simple-dockerfile,react-simple,1min 10sec 468ms 819µs 400ns +simple-dockerfile,react-simple,1min 14sec 622ms 376µs 400ns +simple-dockerfile,react-simple,1min 27sec 259ms 405µs 200ns +simple-dockerfile,react-simple,1min 19sec 808ms 606µs 300ns +simple-dockerfile,react-simple,1min 15sec 895ms 64µs 500ns +simple-dockerfile,react-simple,1min 27sec 740ms 313µs 200ns +simple-dockerfile,react-simple,1min 19sec 988ms 867µs 200ns +simple-dockerfile,react-simple,1min 26sec 77ms 242µs +simple-dockerfile,react-simple,1min 40sec 910ms 582µs 500ns +simple-dockerfile,react-simple,4min 777ms 794µs 600ns +simple-dockerfile,react-simple,1min 11sec 500ms 54µs 900ns +simple-dockerfile,react-simple,1min 13sec 927ms 91µs 100ns +simple-dockerfile,react-simple,1min 23sec 948ms 588µs 400ns +simple-dockerfile,react-simple,1min 18sec 690ms 388µs 500ns +simple-dockerfile,react-simple,1min 25sec 422ms 517µs 400ns +simple-dockerfile,react-simple,1min 26sec 407ms 685µs 300ns +simple-dockerfile,react-simple,1min 29sec 977ms 101µs 300ns +simple-dockerfile,react-simple,1min 19sec 61ms 767µs 900ns +simple-dockerfile,react-simple,1min 12sec 544ms 154µs 200ns +simple-dockerfile,react-simple,1min 24sec 477ms 850µs 400ns +simple-dockerfile,react-simple,1min 21sec 908ms 460µs 800ns +simple-dockerfile,react-simple,1min 15sec 78ms 775µs 800ns +simple-dockerfile,react-simple,1min 27sec 492ms 932µs 300ns +simple-dockerfile,react-simple,1min 22sec 536ms 652µs 200ns +simple-dockerfile,react-simple,1min 19sec 496ms 600µs 800ns +simple-dockerfile,react-simple,1min 24sec 458ms 485µs 400ns +simple-dockerfile,react-simple,1min 11sec 667ms 123µs 600ns +simple-dockerfile,react-simple,1min 20sec 266ms 41µs 200ns +simple-dockerfile,react-simple,1min 25sec 455ms 370µs 300ns +simple-dockerfile,react-simple,1min 20sec 15ms 882µs 400ns +simple-dockerfile,react-simple,1min 13sec 364ms 766µs 200ns +simple-dockerfile,react-simple,1min 9sec 488ms 995µs 600ns +simple-dockerfile,react-simple,1min 19sec 394ms 34µs +simple-dockerfile,react-simple,1min 20sec 76ms 854µs 300ns +simple-dockerfile,react-simple,1min 26sec 694ms 703µs 700ns +simple-dockerfile,react-simple,1min 18sec 983ms 980µs 600ns +simple-dockerfile,react-simple,1min 12sec 329ms 788µs 100ns +simple-dockerfile,react-simple,1min 20sec 35ms 277µs 100ns +simple-dockerfile,react-simple,1min 29sec 922ms 464µs 100ns +simple-dockerfile,react-simple,1min 24sec 782ms 211µs 100ns +simple-dockerfile,react-simple,1min 18sec 438ms 633µs 300ns +simple-dockerfile,react-simple,1min 20sec 924ms 932µs 200ns +simple-dockerfile,react-simple,1min 12sec 718ms 832µs 600ns +simple-dockerfile,react-simple,1min 26sec 34ms 431µs 300ns +simple-dockerfile,react-simple,1min 22sec 551ms 923µs 100ns +simple-dockerfile,react-simple,1min 12sec 933ms 964µs +simple-dockerfile,react-simple,1min 24sec 411ms 409µs +simple-dockerfile,react-simple,1min 11sec 835ms 417µs 400ns +simple-dockerfile,react-simple,1min 26sec 76ms 159µs +simple-dockerfile,react-simple,1min 27sec 207ms 16µs 700ns +simple-dockerfile,react-simple,1min 25sec 200ms 46µs 700ns +simple-dockerfile,react-simple,1min 18sec 183ms 827µs 300ns +simple-dockerfile,react-simple,1min 37sec 481ms 801µs 800ns +simple-dockerfile,react-simple,1min 31sec 826ms 474µs 100ns +simple-dockerfile,react-simple,1min 32sec 414ms 745µs 100ns +simple-dockerfile,react-simple,1min 29sec 179ms 217µs 600ns +simple-dockerfile,react-simple,1min 24sec 797ms 413µs 700ns +simple-dockerfile,react-simple,1min 12sec 828ms 120µs 200ns +simple-dockerfile,react-simple,1min 32sec 381ms 986µs 800ns +simple-dockerfile,react-simple,1min 26sec 228ms 605µs 900ns +simple-dockerfile,react-simple,1min 24sec 100ms 892µs 300ns +simple-dockerfile,react-simple,1min 12sec 486ms 834µs 100ns +simple-dockerfile,react-simple,1min 13sec 234ms 985µs 400ns +simple-dockerfile,react-simple,1min 18sec 444ms 840µs 600ns +simple-dockerfile,react-simple,1min 30sec 372ms 153µs 200ns +simple-dockerfile,react-simple,1min 25sec 696ms 228µs 100ns +simple-dockerfile,react-simple,1min 28sec 362ms 958µs 700ns +simple-dockerfile,react-simple,1min 25sec 321ms 332µs +simple-dockerfile,react-simple,1min 15sec 777ms 589µs 600ns +simple-dockerfile,react-simple,1min 31sec 392ms 116µs 900ns +simple-dockerfile,react-simple,1min 27sec 213ms 914µs 700ns +simple-dockerfile,react-simple,1min 24sec 783ms 383µs 400ns diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..f0690d67d8b3a24cd530b75ab9fa65b8fc7cf97b GIT binary patch literal 14128 zcmeHOc|4Tc8y`&3YKcmVMpVL#8Cxo;XKTqM*i#P2)Jyrkg_#|tn1j#@uC~9BGNLjuYu0Z6wQ7Dnl@YETk14s>!HXyr# z3syG7RbOZQhVVY1)z~4t|vzV&#&M;%HLo=w?0`E61aO% zq^ZdYuGi|5X{EhGu9^1H8KfCy;B0?@JRx=OJyEJ@2@!4(5iicg<^p|5{qB8H5CHsT>9B$B>)%VT?oQY!y zi;7)uyzZc%wn5`eG$lMdwsF(`GIqw>9)B?oWO(kV{H0`$)BBOLQx^aC${B9c^vtl{ zBb#`uoPFXS->%S&Kc6tOD$PH^D{~gOvt0>>1(E#VuPyi)h5E`HwvlqkaWoL+^Dq#F;z}vN>{ZZg__jcg71Acxx@b3Y? zpdEPEj_uR`Pr%PHP&f0qCcYwkZDe*<8^y0rrz0(cj|qcM-Z-!=_i zsE5a|1}u`icHq|oer!ANC4gtQ1FsAFfN?TB?04Fnu>J0U$Nop)ANAiuz}rLnh!6Q6 z^CGU660TA_!t{-6^$sAV~wLJSd>qg+{c}MzgVQHXYKQ-?anKs^=37i`^LqjMNE5H%E9rAt^NDa?HxP{P4m+E zVbgSH(92vumIg)?X=KDO=6KW;|G|k18=p<$Mc*J!)Ql9%ux_K*ZZ?kJNqt(Y-Th9) zrRGOR+%lv5YtCJm%2th=6SJK0#%jQuspToRRR1$JWPScB!^I931uM@@G|wCI5(WVt zXJ~%Ii8`peQ_jVlN6!aV)lFn7k4-i-vPnF8cX?_vMP;9>wppozBryE6(e+7}{TAPN zygjIDLCU~8zP*n=FVL9iH)H+zyCi+_e2KWJNgIUkqe=oEZeH{#Va%zzUEBBVY>dsS z9KAzrNkFn{86_quWAwK7Tb=d}%S*aZFE$+U;HpE|O!qwr?@N{ZEl>Z4#0$%#JW*YT z7T8SIIp=RXrPJhPA7a=|l@TYhn~wEToqf=Di_+|qgRlR6BJ;P+_Pz7|R_pp~^u6Te z&ki}!_B4j*G?zTD{Nomh7nU7)qW)eW5ZQUTXB|9um%7?fXmGB?-#Mk z^Aa~Exa@X&Gq74|!H`C_idN6J<0kB6`Fq{VD7;XWRznRW@uGDCC+edqUOkq?58KzF zZm7rWAs4%y)9j=UxOJ8zRfm$fEkw^Gn{??YyP=2Y&T)-%d`rf*{I z3vc_y_0vzA9q3daGvMQ&=X@sJPYX+?j$c9WQq&?r(e7ATkkpC&E(Vq~?2CU<>sEcz zNm;#b$o)jWfs*$NB0suDJ{cDqepY4l@x5VM%In-xi)!9m|I%}vzLCddZv8$B=ksqL zR1v&t#9~Z72U2?)UB58&DD75gxMQ93z?aUSdTDfQm^77dp+p_a7Dm&a`QPNzQ|c<8 zsQ2ypD&B6R>X-_r(X;oj+bX!w6e3OvCwQp@FJ6C<+SHRz?^bm6EPiU5xOVo%u8(h3 z-%QzZe0|OWH}#@Gr*q?q;;kLLck3DKRAJ4!rTcE<^Z1TBm8#uc>(mN{9;zK#TPO1a z;>7DW!7B_Nui6+-P40iWdbC>O4x6bpn&IPZJh#*~oLGH)5$li5BZqd{f8qAp)13MP zd!FQ)luhUO&tDhiYgpvaQM|&qFNqiKnB<9iyQ%JuL(-I;cj=|)^BYoM$1^F5ZdDfe zQ)uJ0yu)0w8*A*Vy40Rp8rpA7ui>SeRZOCP$#j|VqH6Ym#N`u`S3Z^b0qINLZ&3vi z75Vn1zFq$+D0%R7*YSY;nq6Wyp7%eTJMgT=f#hw%$Q|2hrPQtkQy(O~(4P~&Qgd5> zLw57piQd;5sz0PTDv@~M&Q6}Fo3~GE&g#Ujv52k7a6aCV9a7Phv)-SQWf8^CXmp_0 zb5FhMm8ue$eT?03vX7O^z32wd$KzdZr|+10=g=ELqEugs8k*DL&QPAHxlOx2UQH7Z zFv)bXWi0tMky*YghjzSi_Ab`016oy9HF@I4?lX5*cdid|h`n=XxE42lR$U)^bG539 zh&P>f>Ck2RB3``DLgZ9~?99w{Z=H^_NLPDgq5W;o(RhGnr0Hb()GBPTwCDXSvP;tB;EUOwp@In zzsu*)$x)i6`s*hRRrRjaExBLrV%W!ExX02-!yf7RCeX8@y!w@Fox*KoZnSnh7+bFVE~MpVK1(sdV7jMcq9I%`)SPFJlC zS8<=w(AO)mCUIbWw{xfN#k_xV^zi`_FM01v4eNVvDxZx?pE)6I4>faKbkV8f%XYK-rhgo}W!i~%-1=KJZI>y{c3C$<*_LZ}Of3-j4-wAh`G<4{YUM7u)ULNyoh};?W!9)9!K;`kP zh=~XC{dQ$f2b%x-_83z3blk2u!LmudS-nznt}Y&vSbC5jvB`Rr{(z>- zQL8U@nM~q^yJ&f$ntZy-?xC?MYIg0}!+y1CJ~bD12Ti! z=L|$nO|BLkJGN!4S)70JvX2bIAzs-oN4S$q8Y&hHvKYj3@iV)0*DkI>wXSx~a%Q*U z^w_w-E9#@KgJF6;|Av27Jp9 z9@~GciqUxxTk-Izvk{N>qGTzFSD(!5ny0gibCG7W zCDr%uCtmfP2Hbq)a!I85WN%#0hrwsI-*E_f5?qrNS6AD`ig#S7=jymDI6|)|Rej4f zo36$Sd;Ct~9Z2Rq?;<=okF)Bz`^dx7C|*;Cht8{ib5BEby3!~kM@P@`l;?h}$?I=2 zmMoy2Xv~dLZ%*rQd+8BIdZ&S2wFh5BnOXwxw-TC%P{LB0`*;7MeY{BQ70ly%Q;I+j zShpkp-4=eb{q(?35B&7NPY?X`z)uhS^uYgx2NuZgw{ zod!R2hDGO1bT&liICSPh=Oc8MLFW#1MnL!XNL@FXt^@((Thmz|>d@ea^hEk1-H{E* z7HkJ<2epUlpnEZ_H@bsFb|Br5ZRkC+6WN4xMrV3t6S|8)_8~iweaL>~2V@7b2}xuZ z`XO78O{hI&Kk5ghBNI6Ul4PhK{|sSkvK+24KNHA!$#^^6xD>Ic!&}v0|FzU5ZN4w<9$$xv>gX10c#_1 zM3ABc{ymq7p~5jkP-4Xx#(*$~FWEHYY&gCO#}k3p7GMrwaO4t>)KON7U=fB=aBLHf zeea9kOV zqf%Dd2*Von@|Rj`DA|pYwuEEHaI6$n?gJcMhNGzzB{=>J$6F~%aD*C;$WoNx7&aWU zr6|EsZaAt-QBnyL3k|f#abJoO^!dUU6Nw|k6eT#84#$ouN^le$j`~vg8pq4w_%KDu z_c1uO4#$!yFyAl1adtSaj2H(jh9!l9Bk^$L8Bt<|M*NrKT0^M}rXHA8a&leXlSFngHV*IjL!W9WU`A!lMPv~n$ zV=1O18^v@4~f&5@!o{&z|8iS%Z#b#eUBQ#OO5%B^gQthQ0FO*0E#UsoB;>#0DM4=2}pukVe z2oU+2DF9}4Qie{BZ-c5r=Th7IOK4Tv1D{5UhS;%1xg#RNHkTj-H*^I{;$v(g4}fx^*0%q`dX zD{^^BJJ^X1CS39ry`tzJ@k=`!_ZNx%^MZDA!zlYEHN0;Jv&?iDqF<3KirUTpE#0N` z|5SU~R|`%j>8*JAk2EIF1YfgC^(D>-t<9yaOqam@+4L!08(N-dzcB@eaJ|sdMu-0$ zp+TqqIn>0DS- zB|NSe9nV;Bf~VOc1hWN?d3+U*C MpwiRG|KH#L0X%`1z5oCK literal 0 HcmV?d00001 diff --git a/test/build_results_2025-01-09_13-42-07/bun-rspack-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/bun-rspack-dockerfile.csv new file mode 100644 index 0000000..cf957cd --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/bun-rspack-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +bun-rspack-dockerfile,react-bun-rspack,18sec 945ms 760µs +bun-rspack-dockerfile,react-bun-rspack,15sec 918ms 50µs 600ns +bun-rspack-dockerfile,react-bun-rspack,15sec 230ms 637µs 800ns +bun-rspack-dockerfile,react-bun-rspack,9sec 915ms 109µs 500ns +bun-rspack-dockerfile,react-bun-rspack,13sec 563ms 494µs 600ns +bun-rspack-dockerfile,react-bun-rspack,14sec 284ms 133µs 200ns +bun-rspack-dockerfile,react-bun-rspack,11sec 952ms 666µs 500ns +bun-rspack-dockerfile,react-bun-rspack,14sec 395ms 323µs 800ns +bun-rspack-dockerfile,react-bun-rspack,13sec 495ms 284µs 200ns +bun-rspack-dockerfile,react-bun-rspack,13sec 558ms 48µs 900ns diff --git a/test/build_results_2025-01-09_13-42-07/multi-stage-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/multi-stage-dockerfile.csv new file mode 100644 index 0000000..0aa4adb --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/multi-stage-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +multi-stage-dockerfile,react-multistage,1min 23sec 659ms 190µs 400ns +multi-stage-dockerfile,react-multistage,1min 20sec 118ms 730µs 900ns +multi-stage-dockerfile,react-multistage,1min 19sec 993ms 425µs 800ns +multi-stage-dockerfile,react-multistage,1min 33sec 876ms 590µs 700ns +multi-stage-dockerfile,react-multistage,1min 22sec 528ms 224µs 200ns +multi-stage-dockerfile,react-multistage,1min 17sec 523ms 564µs 700ns +multi-stage-dockerfile,react-multistage,1min 23sec 46ms 176µs 500ns +multi-stage-dockerfile,react-multistage,1min 21sec 976ms 26µs 700ns +multi-stage-dockerfile,react-multistage,1min 20sec 387ms 777µs 300ns +multi-stage-dockerfile,react-multistage,1min 22sec 425ms 531µs 200ns diff --git a/test/build_results_2025-01-09_13-42-07/nginx-alpine-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/nginx-alpine-dockerfile.csv new file mode 100644 index 0000000..c3e44f7 --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/nginx-alpine-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +nginx-alpine-dockerfile,react-nginx-alpine,1min 15sec 436ms 655µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 15sec 692ms 34µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 10sec 203ms 169µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 14sec 354ms 534µs 200ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 14sec 178ms 886µs +nginx-alpine-dockerfile,react-nginx-alpine,1min 16sec 73ms 856µs 500ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 13sec 502ms 957µs 900ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 13sec 350ms 748µs 700ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 13sec 47ms 575µs 400ns +nginx-alpine-dockerfile,react-nginx-alpine,1min 12sec 72ms 499µs 900ns diff --git a/test/build_results_2025-01-09_13-42-07/nginx-distroless-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/nginx-distroless-dockerfile.csv new file mode 100644 index 0000000..53f4792 --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/nginx-distroless-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +nginx-distroless-dockerfile,react-nginx-distroless,13sec 590ms 676µs 800ns +nginx-distroless-dockerfile,react-nginx-distroless,13sec 660ms 562µs 900ns +nginx-distroless-dockerfile,react-nginx-distroless,13sec 904ms 962µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,15sec 282ms 358µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,14sec 181ms 862µs 300ns +nginx-distroless-dockerfile,react-nginx-distroless,13sec 546ms 659µs 100ns +nginx-distroless-dockerfile,react-nginx-distroless,12sec 919ms 500µs 400ns +nginx-distroless-dockerfile,react-nginx-distroless,14sec 34ms 818µs 600ns +nginx-distroless-dockerfile,react-nginx-distroless,14sec 105ms 866µs 700ns +nginx-distroless-dockerfile,react-nginx-distroless,14sec 436ms 202µs diff --git a/test/build_results_2025-01-09_13-42-07/nginx-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/nginx-dockerfile.csv new file mode 100644 index 0000000..5dab274 --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/nginx-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +nginx-dockerfile,react-nginx,1min 13sec 875ms 818µs 700ns +nginx-dockerfile,react-nginx,1min 15sec 156ms 568µs 600ns +nginx-dockerfile,react-nginx,1min 14sec 561ms 386µs 900ns +nginx-dockerfile,react-nginx,1min 15sec 940ms 93µs 700ns +nginx-dockerfile,react-nginx,1min 12sec 368ms 122µs +nginx-dockerfile,react-nginx,1min 14sec 447ms 551µs 600ns +nginx-dockerfile,react-nginx,1min 13sec 167ms 516µs 900ns +nginx-dockerfile,react-nginx,1min 14sec 631ms 928µs 300ns +nginx-dockerfile,react-nginx,1min 13sec 530ms 822µs 800ns +nginx-dockerfile,react-nginx,1min 17sec 309ms 34µs 900ns diff --git a/test/build_results_2025-01-09_13-42-07/node-alpine-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/node-alpine-dockerfile.csv new file mode 100644 index 0000000..5515b7c --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/node-alpine-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +node-alpine-dockerfile,react-multistage-alpine,1min 30sec 666ms 11µs 600ns +node-alpine-dockerfile,react-multistage-alpine,1min 20sec 931ms 109µs 800ns +node-alpine-dockerfile,react-multistage-alpine,1min 21sec 534ms 917µs +node-alpine-dockerfile,react-multistage-alpine,1min 22sec 748ms 880µs 100ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 256ms 692µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 20sec 481ms 825µs 400ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 184ms 61µs 300ns +node-alpine-dockerfile,react-multistage-alpine,1min 21sec 982ms 333µs 700ns +node-alpine-dockerfile,react-multistage-alpine,1min 19sec 915ms 779µs +node-alpine-dockerfile,react-multistage-alpine,1min 18sec 671ms 55µs 600ns diff --git a/test/build_results_2025-01-09_13-42-07/simple-dockerfile.csv b/test/build_results_2025-01-09_13-42-07/simple-dockerfile.csv new file mode 100644 index 0000000..446189d --- /dev/null +++ b/test/build_results_2025-01-09_13-42-07/simple-dockerfile.csv @@ -0,0 +1,11 @@ +tag,image,time +simple-dockerfile,react-simple,5min 56sec 870ms 91µs 300ns +simple-dockerfile,react-simple,4min 17sec 655ms 182µs +simple-dockerfile,react-simple,1min 45sec 427ms 226µs 700ns +simple-dockerfile,react-simple,1min 38sec 995ms 239µs 400ns +simple-dockerfile,react-simple,50sec 807ms 693µs 200ns +simple-dockerfile,react-simple,42sec 761ms 127µs +simple-dockerfile,react-simple,46sec 352ms 337µs 200ns +simple-dockerfile,react-simple,48sec 205ms 438µs +simple-dockerfile,react-simple,42sec 805ms 61µs 200ns +simple-dockerfile,react-simple,43sec 612ms 381µs 500ns diff --git a/test/bun-rspack-dockerfile.csv b/test/bun-rspack-dockerfile.csv new file mode 100644 index 0000000..8bdaf23 --- /dev/null +++ b/test/bun-rspack-dockerfile.csv @@ -0,0 +1,2 @@ +tag,image,time +bun-rspack-dockerfile,react-bun-rspack,9sec 220ms 258µs 900ns diff --git a/test/nginx-distroless-dockerfile.csv b/test/nginx-distroless-dockerfile.csv new file mode 100644 index 0000000..62658c3 --- /dev/null +++ b/test/nginx-distroless-dockerfile.csv @@ -0,0 +1,2 @@ +tag,image,time +nginx-distroless-dockerfile,react-nginx-distroless,9sec 221ms 865µs 600ns