#!/usr/bin/env bash set -euo pipefail IMAGE="${1:-}" ENV_FILE="${2:-}" HOST_PORT="${3:-}" CONTAINER_NAME="${4:-}" PROJECT_NAME="${5:-}" if [ -z "$IMAGE" ] || [ -z "$ENV_FILE" ] || [ -z "$HOST_PORT" ] || [ -z "$CONTAINER_NAME" ] || [ -z "$PROJECT_NAME" ]; then echo "Usage: $0 " >&2 exit 64 fi if [ ! -f "docker-compose.yml" ]; then echo "Missing docker-compose.yml in $(pwd)" >&2 exit 66 fi if [ ! -f "$ENV_FILE" ]; then echo "Missing env file: $ENV_FILE" >&2 exit 66 fi if docker compose version >/dev/null 2>&1; then COMPOSE=(docker compose) elif command -v docker-compose >/dev/null 2>&1; then COMPOSE=(docker-compose) else echo "docker compose command not found" >&2 exit 127 fi export COZSWEET_IMAGE="$IMAGE" export COZSWEET_ENV_FILE="$ENV_FILE" export COZSWEET_HOST_PORT="$HOST_PORT" export COZSWEET_CONTAINER_NAME="$CONTAINER_NAME" export COMPOSE_PROJECT_NAME="$PROJECT_NAME" echo "=== deploy image: $COZSWEET_IMAGE ===" echo "=== env file: $COZSWEET_ENV_FILE ===" echo "=== host port: $COZSWEET_HOST_PORT ===" echo "=== container: $COZSWEET_CONTAINER_NAME ===" echo "=== compose project: $COMPOSE_PROJECT_NAME ===" "${COMPOSE[@]}" pull web "${COMPOSE[@]}" up -d --remove-orphans --no-build web "${COMPOSE[@]}" ps docker image prune -f echo "=== deploy done ==="