Challenge 3: Pick a Base Image — Possible Solution ==================================================================== RECOMMENDATION: Slim (e.g. node:18-slim), not Alpine. WHY NOT ALPINE (the smallest option): Alpine uses musl as its C library instead of glibc, which this chapter flagged as a genuinely different library, not a stripped-down version of the same one. Since the team's app specifically depends on a native addon COMPILED AGAINST glibc, running it on Alpine risks the addon failing to load entirely, or — worse — loading but behaving subtly incorrectly in ways that might not be immediately obvious. Given the team has explicitly said reliability matters more than size here, choosing the option with a known, real compatibility risk for their exact use case would be prioritizing the wrong trade-off. WHY SLIM FITS: Slim is Debian-based and keeps glibc, meaning the native addon should behave identically to how it behaves during local development on a typical glibc-based system — while still meaningfully reducing image size compared to the full node:18 base by dropping non-essential packages the team's app doesn't need. This gives most of the size benefit multi-stage/optimization work is chasing, without introducing Alpine's specific, known risk for a native-addon-dependent application.