Docker for Portfolio Builds on Any Machine

Every software engineer has encountered the frustrating "works on my machine" paradox. A frontend application builds cleanly on a developer's high-end MacBook, only to crash during continuous integration on an Ubuntu runner or fail when an engineer attempts to contribute from a Windows workstation. Subtle differences in installed Node versions, operating system line endings, Python image-optimization libraries, and native C++ build toolchains can introduce obscure bugs.

To guarantee 100% build reproducibility across any development machine or CI agent, this portfolio encapsulates its entire development, build, and deployment lifecycle within Docker containers. Whether running on a Windows desktop, a Linux developer laptop, or an automated Woodpecker CI agent, the build executes inside an identical, isolated runtime.

Our `Dockerfile` is built on a minimal `node:22-alpine` base image with explicitly pinned package versions. We install Python, Make, and necessary build dependencies to support our image optimization scripts (`scripts/optimize-character-portraits.py` and `scripts/generate-favicon-sizes.py`) without requiring developers to configure local Python virtual environments on their host machines.

← Rafael González Albes