Commit 414922a
committed
feat(ci): use Alpine Docker container for smol musl builds
Added Docker-based Alpine builds for smol binaries to produce native
musl binaries instead of glibc.
Changes:
- Split build step into two: standard platforms and Alpine
- Alpine builds run in alpine:3.19 Docker container
- Uses --platform flag for correct architecture (amd64 for x64, arm64)
- Installs all required build tools in Alpine: nodejs, npm, pnpm,
python3, make, g++, linux-headers, git, ccache, ninja
Why Docker over QEMU/setup-alpine:
- Faster: Native execution for x64, QEMU only for Alpine container (not compilation)
- Simpler: One command, no complex setup
- Reliable: Official Alpine images, true musl environment
- arm64: Avoids full system emulation during Node.js compilation
Expected build times:
- x64 Alpine: ~50-60 minutes (native speed)
- arm64 Alpine: ~90-120 minutes (minimal QEMU overhead)
This ensures Alpine builds produce proper musl binaries that work
on Alpine Linux and other musl-based systems.1 parent fadc23e commit 414922a
1 file changed
Lines changed: 16 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
285 | 285 | | |
286 | 286 | | |
287 | 287 | | |
288 | | - | |
289 | | - | |
| 288 | + | |
| 289 | + | |
290 | 290 | | |
291 | 291 | | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
292 | 306 | | |
293 | 307 | | |
294 | 308 | | |
| |||
0 commit comments