Multistage builds (one build and one exec stage) greatly reduces your image size.
Alpine is still a distribution, scratch is an empty image where you can copy your binary into and is thus about 5MB smaller. If you don't need an execution environment (you do for node or python), use scratch.
=> If we need a true graceful shutdown, we can even add a gracefullShutdown command to the pod configuration!
# application container lifecycle: preStop: exec: command: [ '/bin/bash', '/app/shutdown' ] # for entire pod terminationGracePeriodSeconds: 160