- deploy/Dockerfile: unified image with supervisord (nginx + uvicorn) - distribution/docker-compose.single.yml: single container option - distribution/README.md: 3 deployment options (single, compose, docker run) - Fix: add status column to chat_messages CREATE TABLE (was only in migration, broke fresh DB) - push-images.sh: builds 3 images (unified, backend, frontend)
75 lines
2.3 KiB
Bash
Executable File
75 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
|
|
OCIR_REGION="${OCIR_REGION:?Set OCIR_REGION (e.g., us-ashburn-1)}"
|
|
OCIR_NAMESPACE="${OCIR_NAMESPACE:?Set OCIR_NAMESPACE}"
|
|
OCIR_REPO_PREFIX="${OCIR_REPO_PREFIX:-oci-cis-agent}"
|
|
IMAGE_TAG="${IMAGE_TAG:-latest}"
|
|
|
|
UNIFIED="${OCIR_REGION}.ocir.io/${OCIR_NAMESPACE}/${OCIR_REPO_PREFIX}:${IMAGE_TAG}"
|
|
BACKEND="${OCIR_REGION}.ocir.io/${OCIR_NAMESPACE}/${OCIR_REPO_PREFIX}-backend:${IMAGE_TAG}"
|
|
FRONTEND="${OCIR_REGION}.ocir.io/${OCIR_NAMESPACE}/${OCIR_REPO_PREFIX}-frontend:${IMAGE_TAG}"
|
|
|
|
echo "========================================"
|
|
echo "OCI CIS Agent — Build & Push to OCIR"
|
|
echo "========================================"
|
|
echo "Unified: $UNIFIED"
|
|
echo "Backend: $BACKEND"
|
|
echo "Frontend: $FRONTEND"
|
|
echo ""
|
|
|
|
# 1. Build frontend React SPA
|
|
echo ">>> Building frontend..."
|
|
cd "$PROJECT_ROOT/frontend-react"
|
|
npm ci --silent
|
|
npm run build
|
|
echo "Frontend build OK."
|
|
|
|
# 2. Ensure buildx builder exists
|
|
docker buildx inspect multiarch >/dev/null 2>&1 || \
|
|
docker buildx create --name multiarch --use
|
|
docker buildx use multiarch
|
|
|
|
# 3. Login to OCIR
|
|
echo ">>> Logging in to OCIR..."
|
|
docker login "${OCIR_REGION}.ocir.io"
|
|
|
|
# 4. Build + push UNIFIED image (single container — nginx + backend)
|
|
echo ">>> Building & pushing unified image (amd64 + arm64)..."
|
|
cd "$PROJECT_ROOT"
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
-t "$UNIFIED" \
|
|
--push \
|
|
-f deploy/Dockerfile .
|
|
echo "Unified image pushed."
|
|
|
|
# 5. Build + push backend (multi-arch) — for docker-compose deployments
|
|
echo ">>> Building & pushing backend (amd64 + arm64)..."
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
-t "$BACKEND" \
|
|
--push \
|
|
-f backend/Dockerfile backend/
|
|
echo "Backend image pushed."
|
|
|
|
# 6. Build + push frontend (multi-arch) — for docker-compose deployments
|
|
echo ">>> Building & pushing frontend (amd64 + arm64)..."
|
|
docker buildx build \
|
|
--platform linux/amd64,linux/arm64 \
|
|
-t "$FRONTEND" \
|
|
--push \
|
|
-f deploy/Dockerfile.frontend .
|
|
echo "Frontend image pushed."
|
|
|
|
echo ""
|
|
echo "========================================"
|
|
echo "All 3 images pushed!"
|
|
echo "Unified: $UNIFIED (single container)"
|
|
echo "Backend: $BACKEND (docker-compose)"
|
|
echo "Frontend: $FRONTEND (docker-compose)"
|
|
echo "========================================"
|