busi488energy/scripts/build-and-push.sh
2026-04-05 20:53:33 -04:00

39 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
IMAGE="registry.claiborne.soy/busi488energy:latest"
KCTX="media"
DB_LOCAL_PORT=5434
# Source .env for build args
set -a
source "$(dirname "$0")/../.env"
set +a
# Start port-forward to prod DB
echo "==> Port-forwarding postgis on :${DB_LOCAL_PORT}..."
kubectl --context "$KCTX" -n database port-forward svc/postgis "${DB_LOCAL_PORT}:5432" &
PF_PID=$!
trap "kill $PF_PID 2>/dev/null || true" EXIT
sleep 2
BUILD_DATABASE_URL="postgresql://busi488energy:busi488energy@host.docker.internal:${DB_LOCAL_PORT}/busi488energy"
echo "==> Building ${IMAGE}..."
docker build --network=host \
--build-arg DATABASE_URL="postgresql://busi488energy:busi488energy@127.0.0.1:${DB_LOCAL_PORT}/busi488energy" \
--build-arg NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="$NEXT_PUBLIC_GOOGLE_MAPS_API_KEY" \
--build-arg NEXT_PUBLIC_GOOGLE_MAP_ID="$NEXT_PUBLIC_GOOGLE_MAP_ID" \
--build-arg EIA_API_KEY="$EIA_API_KEY" \
--build-arg FRED_API_KEY="$FRED_API_KEY" \
-t "$IMAGE" .
echo "==> Pushing ${IMAGE}..."
docker push "$IMAGE"
echo "==> Restarting deployment..."
kubectl --context "$KCTX" -n random rollout restart deploy/busi488energy
kubectl --context "$KCTX" -n random rollout status deploy/busi488energy --timeout=120s
echo "==> Done!"