Files
proxmox-ha-setup/scripts/update-compose-image.sh
2025-11-29 19:51:15 +01:00

112 lines
3.4 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# update-compose-image.sh
# Script per aggiornare i file docker-compose.yml per usare l'immagine dal registry
# Uso: ./update-compose-image.sh <registry_url> <image_name> <tag>
# Esempio: ./update-compose-image.sh registry.example.com:5000 orchestrator-app latest
set -e
# ==================== CONFIGURAZIONE ====================
if [ "$#" -ne 3 ]; then
echo "Uso: $0 <registry_url> <image_name> <tag>"
echo ""
echo "Parametri:"
echo " registry_url - URL del registry privato"
echo " image_name - Nome dell'immagine"
echo " tag - Tag dell'immagine"
echo ""
echo "Esempio:"
echo " $0 registry.example.com:5000 orchestrator-app latest"
echo ""
echo "Lo script aggiornerà i file docker-compose.yml in vm1/ e vm2/"
echo "sostituendo 'build: .' con 'image: registry_url/image_name:tag'"
exit 1
fi
REGISTRY_URL=$1
IMAGE_NAME=$2
TAG=$3
FULL_IMAGE_NAME="${REGISTRY_URL}/${IMAGE_NAME}:${TAG}"
# Directory dei progetti
VM1_DIR="/home/alex/devel/proxmox-ha-setup/vm1"
VM2_DIR="/home/alex/devel/proxmox-ha-setup/vm2"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
CYAN='\033[0;36m'
NC='\033[0m'
# ==================== FUNZIONI ====================
print_success() { echo -e "${GREEN}$1${NC}"; }
print_warning() { echo -e "${YELLOW}$1${NC}"; }
print_error() { echo -e "${RED}$1${NC}"; }
print_info() { echo -e "${CYAN} $1${NC}"; }
update_compose_file() {
local compose_file=$1
local backup_file="${compose_file}.backup"
if [ ! -f "$compose_file" ]; then
print_warning "File non trovato: $compose_file"
return 1
fi
# Crea backup
cp "$compose_file" "$backup_file"
print_info "Backup creato: $backup_file"
# Sostituisci 'build: .' con 'image: ...'
sed -i "s|build: \.|image: ${FULL_IMAGE_NAME}|g" "$compose_file"
print_success "Aggiornato: $compose_file"
return 0
}
# ==================== SCRIPT PRINCIPALE ====================
echo -e "${BLUE}================================================${NC}"
echo -e "${BLUE}AGGIORNAMENTO DOCKER-COMPOSE FILES${NC}"
echo -e "${BLUE}================================================${NC}"
echo ""
print_info "Immagine da utilizzare: ${CYAN}$FULL_IMAGE_NAME${NC}"
echo ""
# Aggiorna vm1/docker-compose.yml
if [ -f "$VM1_DIR/docker-compose.yml" ]; then
print_info "Aggiornamento $VM1_DIR/docker-compose.yml..."
update_compose_file "$VM1_DIR/docker-compose.yml"
else
print_warning "File non trovato: $VM1_DIR/docker-compose.yml"
fi
echo ""
# Aggiorna vm2/docker-compose.yml
if [ -f "$VM2_DIR/docker-compose.yml" ]; then
print_info "Aggiornamento $VM2_DIR/docker-compose.yml..."
update_compose_file "$VM2_DIR/docker-compose.yml"
else
print_warning "File non trovato: $VM2_DIR/docker-compose.yml"
fi
echo ""
echo -e "${BLUE}================================================${NC}"
echo -e "${GREEN}✓ Aggiornamento completato!${NC}"
echo -e "${BLUE}================================================${NC}"
echo ""
print_info "I file docker-compose.yml ora usano: ${CYAN}$FULL_IMAGE_NAME${NC}"
print_info "I file di backup sono stati creati con estensione .backup"
echo ""
print_warning "Ricordati di fare il pull dell'immagine sulle VM:"
print_info " ssh root@192.168.1.201 'cd /opt/myapp && docker pull $FULL_IMAGE_NAME'"
print_info " ssh root@192.168.1.202 'cd /opt/myapp && docker pull $FULL_IMAGE_NAME'"
echo ""