diff --git a/backend/services/deploy-mining.sh b/backend/services/deploy-mining.sh index 747f4beb..2b5bb6fb 100644 --- a/backend/services/deploy-mining.sh +++ b/backend/services/deploy-mining.sh @@ -346,123 +346,40 @@ service_start() { local port="${SERVICE_PORTS[$service]}" log_step "Starting: $service (port $port)" - - # Try docker-compose first - if docker-compose -f "$COMPOSE_FILE" up -d "$service" 2>/dev/null; then - log_success "$service started via docker-compose" - return 0 - fi - - # Fallback to npm - local service_dir="$SCRIPT_DIR/$service" - if [ -d "$service_dir" ]; then - cd "$service_dir" - - # Check if already running - if [ -f "/tmp/$service.pid" ]; then - local pid=$(cat /tmp/$service.pid) - if kill -0 "$pid" 2>/dev/null; then - log_warn "$service is already running (PID: $pid)" - cd "$SCRIPT_DIR" - return 0 - fi - fi - - # Start the service - log_info "Starting via npm..." - nohup npm run start:prod > "/tmp/$service.log" 2>&1 & - echo $! > "/tmp/$service.pid" - - # Wait for startup - sleep 2 - if nc -z localhost "$port" 2>/dev/null; then - log_success "$service started (PID: $(cat /tmp/$service.pid))" - else - log_warn "$service started but port $port not yet listening" - fi - - cd "$SCRIPT_DIR" - else - log_error "Service directory not found: $service_dir" - return 1 - fi + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" up -d "$service" + log_success "$service started" } service_stop() { local service="$1" log_step "Stopping: $service" - - # Try docker-compose first - if docker-compose -f "$COMPOSE_FILE" stop "$service" 2>/dev/null; then - log_success "$service stopped via docker-compose" - return 0 - fi - - # Fallback to PID file - if [ -f "/tmp/$service.pid" ]; then - local pid=$(cat /tmp/$service.pid) - if kill "$pid" 2>/dev/null; then - rm -f "/tmp/$service.pid" - log_success "$service stopped (PID: $pid)" - else - rm -f "/tmp/$service.pid" - log_warn "$service was not running" - fi - else - # Try to find by port - local port="${SERVICE_PORTS[$service]}" - local pid=$(lsof -t -i:$port 2>/dev/null || true) - if [ -n "$pid" ]; then - kill "$pid" 2>/dev/null || true - log_success "$service stopped (found by port $port)" - else - log_warn "$service was not running" - fi - fi + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" stop "$service" + log_success "$service stopped" } service_restart() { local service="$1" - service_stop "$service" - sleep 2 - service_start "$service" + log_step "Restarting: $service" + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" restart "$service" + log_success "$service restarted" } service_build() { local service="$1" local no_cache="$2" - local service_dir="$SCRIPT_DIR/$service" - - if [ ! -d "$service_dir" ]; then - log_error "Service directory not found: $service_dir" - return 1 - fi log_step "Building: $service" - cd "$service_dir" - # Clean if no-cache + # Use docker compose to build if [ "$no_cache" = "--no-cache" ] || [ "$no_cache" = "true" ]; then - log_info "Cleaning build cache..." - rm -rf dist/ node_modules/.cache 2>/dev/null || true + log_info "Building Docker image (no cache)..." + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" build --no-cache "$service" + else + log_info "Building Docker image..." + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" build "$service" fi - # Install dependencies - log_info "Installing dependencies..." - npm install - - # Generate Prisma client if needed - if [ -d "prisma" ]; then - log_info "Generating Prisma client..." - npx prisma generate - fi - - # Build - log_info "Compiling TypeScript..." - npm run build - - cd "$SCRIPT_DIR" log_success "$service built successfully" } @@ -603,20 +520,7 @@ services_logs() { exit 1 } - # Try docker-compose first - if docker-compose -f "$COMPOSE_FILE" logs -f --tail="$lines" "$resolved" 2>/dev/null; then - return 0 - fi - - # Fallback to log file - local log_file="/tmp/$resolved.log" - if [ -f "$log_file" ]; then - log_info "Showing logs for $resolved (tail -f $log_file)" - tail -f -n "$lines" "$log_file" - else - log_error "No logs found for $resolved" - exit 1 - fi + docker compose -f "$COMPOSE_FILE" --env-file "$ENV_FILE" logs -f --tail="$lines" "$resolved" } # ===========================================================================