Your question was not clear to me because it conflates containers (Docker) with runtimes and VMs.
No container at all will give the smallest production container, so a compiled language with no runtime (C) or one with a small runtime (Go) answers your question.
If you must use containers for some reason, the container stuff (e.g. Docker) imposes a constant overhead regardless of the contents, so you can set that aside and just add up the size of the application binary plus runtime plus dependencies. C will likely come out at the top of the list, .NET and Java at the bottom.
gregjor|2 years ago
No container at all will give the smallest production container, so a compiled language with no runtime (C) or one with a small runtime (Go) answers your question.
If you must use containers for some reason, the container stuff (e.g. Docker) imposes a constant overhead regardless of the contents, so you can set that aside and just add up the size of the application binary plus runtime plus dependencies. C will likely come out at the top of the list, .NET and Java at the bottom.
gregjor|2 years ago
Techniques described would apply to any application language.