112 lines
3.4 KiB
Bash
Executable File
112 lines
3.4 KiB
Bash
Executable File
#!/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 ""
|