58 lines
2.1 KiB
Plaintext
Executable File
58 lines
2.1 KiB
Plaintext
Executable File
pipeline {
|
|
agent any
|
|
stages {
|
|
stage('Restart all services') {
|
|
steps {
|
|
script {
|
|
try {
|
|
sh '''
|
|
set +e # Wyłącz strict error handling
|
|
|
|
echo "=== Sprawdzam dostępność Docker ==="
|
|
which docker
|
|
docker --version
|
|
|
|
echo "=== Sprawdzam czy Docker Swarm jest aktywny ==="
|
|
if docker node ls > /dev/null 2>&1; then
|
|
echo "Docker Swarm jest aktywny"
|
|
|
|
echo "=== Lista usług ==="
|
|
SERVICES=$(docker service ls --format "{{.Name}}" 2>/dev/null | grep -v 'jenkins' || true)
|
|
|
|
if [ -z "$SERVICES" ]; then
|
|
echo "BRAK USŁUG DO RESTARTU - nie znaleziono żadnych usług Docker Swarm"
|
|
echo "To może oznaczać, że:"
|
|
echo "1. Nie używasz Docker Swarm"
|
|
echo "2. Wszystkie usługi mają 'jenkins' w nazwie"
|
|
echo "3. Naprawdę nie masz żadnych usług"
|
|
exit 0 # To nie jest błąd - po prostu nie ma co restartować
|
|
else
|
|
echo "Znalezione usługi do restartu: $SERVICES"
|
|
for service in $SERVICES; do
|
|
echo "Restartowanie: $service"
|
|
docker service update --force $service
|
|
done
|
|
fi
|
|
else
|
|
echo "Docker Swarm NIE jest aktywny - przechodzę do restartu kontenerów"
|
|
|
|
# Restart zwykłych kontenerów zamiast usług
|
|
CONTAINERS=$(docker ps --format "{{.Names}}" | grep -v 'jenkins' || true)
|
|
if [ -z "$CONTAINERS" ]; then
|
|
echo "BRAK KONTENERÓW DO RESTARTU"
|
|
exit 0
|
|
else
|
|
echo "Restartowanie kontenerów: $CONTAINERS"
|
|
docker restart $CONTAINERS
|
|
fi
|
|
fi
|
|
'''
|
|
} catch (Exception e) {
|
|
echo "Błąd: ${e.getMessage()}"
|
|
currentBuild.result = 'UNSTABLE'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |