Files
mcp-proxy/build-and-push.sh
2025-11-26 08:32:24 -05:00

51 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -e
REGISTRY="git.baked.rocks"
OWNER="vasceannie"
# Extract service names from docker-compose.yml
SERVICES=($(docker compose config --services))
# Login to registry if not already authenticated
echo "Logging in to ${REGISTRY}..."
docker login "${REGISTRY}" || {
echo "Error: Failed to login to ${REGISTRY}"
echo "Please ensure you have valid credentials"
exit 1
}
# Build all services
echo "Building all services..."
docker compose build
# Tag and push each service
for service in "${SERVICES[@]}"; do
echo "Tagging and pushing $service..."
# Get the image ID - try multiple methods
IMAGE_ID=$(docker compose images -q "$service" 2>/dev/null | head -1)
if [ -z "$IMAGE_ID" ]; then
# Fallback: find image by service name pattern
IMAGE_ID=$(docker images --format "{{.ID}}" --filter "reference=*${service}*" | head -1)
fi
if [ -z "$IMAGE_ID" ]; then
echo "Error: Could not find image ID for $service"
echo "Available images:"
docker compose images
docker images | grep -E "(${SERVICES[*]// /|})"
exit 1
fi
TARGET_IMAGE="${OWNER}/${service}:latest"
REGISTRY_IMAGE="${REGISTRY}/${TARGET_IMAGE}"
# Tag using image ID directly
docker tag "${IMAGE_ID}" "${REGISTRY_IMAGE}"
docker push "${REGISTRY_IMAGE}"
echo "$service pushed successfully"
done
echo "All services built and pushed to ${REGISTRY}"