2026-05-17 16:21:11 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
# Build all project images in dependency order:
|
|
|
|
|
# huskies → huskies-project-base → huskies-project-<stack> (one per stack fragment)
|
|
|
|
|
#
|
2026-07-21 14:57:18 +00:00
|
|
|
# Called automatically by `script/release` (story 1242) so the huskies-project-*
|
|
|
|
|
# images never drift from the version being published. Also safe to run
|
|
|
|
|
# standalone after `script/docker_rebuild` or whenever you add a new stack —
|
|
|
|
|
# each step re-tags the image with the latest layers.
|
2026-05-17 16:21:11 +00:00
|
|
|
|
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
|
|
|
|
|
|
if [[ -f .env ]]; then
|
|
|
|
|
set -a
|
|
|
|
|
source .env
|
|
|
|
|
set +a
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
CACHE_FLAG=""
|
|
|
|
|
if [[ "${1:-}" == "--no-cache" ]]; then
|
|
|
|
|
CACHE_FLAG="--no-cache"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "==> Building huskies"
|
|
|
|
|
docker build $CACHE_FLAG -t huskies -f docker/Dockerfile .
|
|
|
|
|
|
|
|
|
|
echo "==> Building huskies-project-base"
|
|
|
|
|
docker build $CACHE_FLAG -t huskies-project-base -f docker/Dockerfile.base .
|
|
|
|
|
|
|
|
|
|
for fragment in docker/stacks/*/Dockerfile.fragment; do
|
|
|
|
|
stack=$(basename "$(dirname "$fragment")")
|
|
|
|
|
image="huskies-project-${stack}"
|
|
|
|
|
echo "==> Building ${image}"
|
|
|
|
|
(printf 'FROM huskies-project-base\n'; cat "$fragment") \
|
|
|
|
|
| docker build $CACHE_FLAG -t "$image" -
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo "All project images built."
|