build image
This commit is contained in:
111
scripts/update-compose-image.sh
Executable file
111
scripts/update-compose-image.sh
Executable file
@@ -0,0 +1,111 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user