- Add Dockerfile.fast with cargo-chef and symbol stripping - Add Dockerfile.superfast using pre-built base image - Add Dockerfile.base for dependency caching - Update Woodpecker with registry cache (cache_from/cache_to) - Add fast-build.sh for local ultra-fast builds - Add build-base-image.sh for one-time dependency build - Enable BuildKit layer caching in CI
23 lines
720 B
Bash
Executable file
23 lines
720 B
Bash
Executable file
#!/bin/bash
|
|
# build-base-image.sh - Build base image with all dependencies cached
|
|
# Run this once when dependencies change (not on every build!)
|
|
|
|
set -e
|
|
|
|
echo "🔨 Building base image with all dependencies..."
|
|
|
|
# Build base image with cargo-chef
|
|
docker build \
|
|
-f Dockerfile.base \
|
|
-t ghcr.io/traceworks2023/nxtgauge-rust-base:latest \
|
|
-t ghcr.io/traceworks2023/nxtgauge-rust-base:$(date +%Y%m%d) \
|
|
.
|
|
|
|
echo "📤 Pushing base image..."
|
|
docker push ghcr.io/traceworks2023/nxtgauge-rust-base:latest
|
|
docker push ghcr.io/traceworks2023/nxtgauge-rust-base:$(date +%Y%m%d)
|
|
|
|
echo "✅ Base image built and pushed!"
|
|
echo ""
|
|
echo "Now builds will use cached dependencies!"
|
|
echo "Build time: 15-20 min → 30-60 seconds"
|