As part of RegexPlanet, I have implemented the same basic functionality (a straightforward JSON API) with multiple technologies. I originally did them where-ever was easiest, but have been migrating them all to run in Docker, and it is interesting to compare the size of the Docker images.
Technology | Image Size | Notes |
---|---|---|
Bun | 113 MB | bun's own distroless image |
Deno | 111 MB | static binary on distroless/cc |
Go | 9 MB | static binary on scratch, for the win |
Java | not converted to Docker yet | |
.Net | 178 MB | chiseled-extra |
Node.js | 152 MB | distroless |
Perl | 233 MB | debian-slim + Apache (it runs via CGI) |
PHP | 128 MB | distroless/cc with shared libraries copied) |
Python | 60 MB | distroless |
Ruby | 866 MB | ruby (I haven't tried to slim it down or update to latest version of ruby) |
Rust | 77 MB | debian-slim |
Swift | 225 MB | ubuntu-noble |
tcl | 211 MB | debian-slim + Apache (it runs via CGI) |
Images were all built with Docker v24.0.7 for amd64.