1+ #! /bin/bash
2+
3+ # Script de test pour l'image Azure DevOps Agent
4+ # Usage: ./test-docker-hub-image.sh
5+
6+ set -e
7+
8+ echo " 🐳 Test de l'image Azure DevOps Agent depuis Docker Hub"
9+ echo " =================================================="
10+
11+ # Couleurs pour les messages
12+ RED=' \033[0;31m'
13+ GREEN=' \033[0;32m'
14+ YELLOW=' \033[1;33m'
15+ BLUE=' \033[0;34m'
16+ NC=' \033[0m' # No Color
17+
18+ # Fonction pour afficher les messages
19+ log_info () {
20+ echo -e " ${BLUE} ℹ️ $1 ${NC} "
21+ }
22+
23+ log_success () {
24+ echo -e " ${GREEN} ✅ $1 ${NC} "
25+ }
26+
27+ log_warning () {
28+ echo -e " ${YELLOW} ⚠️ $1 ${NC} "
29+ }
30+
31+ log_error () {
32+ echo -e " ${RED} ❌ $1 ${NC} "
33+ }
34+
35+ # Vérifier si Docker est disponible
36+ if ! command -v docker & > /dev/null; then
37+ log_error " Docker n'est pas installé ou n'est pas dans le PATH"
38+ exit 1
39+ fi
40+
41+ # Vérifier si Docker Compose est disponible
42+ if ! command -v docker-compose & > /dev/null && ! docker compose version & > /dev/null; then
43+ log_error " Docker Compose n'est pas installé"
44+ exit 1
45+ fi
46+
47+ # Détecter la commande docker compose
48+ if docker compose version & > /dev/null; then
49+ DOCKER_COMPOSE=" docker compose"
50+ else
51+ DOCKER_COMPOSE=" docker-compose"
52+ fi
53+
54+ log_info " Utilisation de: $DOCKER_COMPOSE "
55+
56+ # Vérifier si le fichier .env existe
57+ if [ ! -f " .env" ]; then
58+ log_warning " Fichier .env non trouvé"
59+ if [ -f " .env.test" ]; then
60+ log_info " Copie de .env.test vers .env"
61+ cp .env.test .env
62+ log_warning " ⚠️ IMPORTANT: Éditez le fichier .env avec vos vraies valeurs Azure DevOps"
63+ echo " "
64+ echo " Vous devez configurer au minimum :"
65+ echo " - AZP_URL=https://dev.azure.com/votre-organisation"
66+ echo " - AZP_TOKEN=votre-personal-access-token"
67+ echo " "
68+ read -p " Appuyez sur Entrée après avoir édité .env, ou Ctrl+C pour annuler..."
69+ else
70+ log_error " Fichier .env.test non trouvé"
71+ exit 1
72+ fi
73+ fi
74+
75+ echo " "
76+ log_info " Pulling de l'image depuis Docker Hub..."
77+ docker pull hypolas/azure-devops-agent:latest
78+
79+ echo " "
80+ log_info " Vérification de l'image..."
81+ docker inspect hypolas/azure-devops-agent:latest > /dev/null
82+
83+ echo " "
84+ log_info " Affichage des informations de l'image..."
85+ docker images hypolas/azure-devops-agent:latest
86+
87+ echo " "
88+ log_info " Nettoyage des anciens conteneurs de test..."
89+ $DOCKER_COMPOSE -f docker-compose.test.yml down --remove-orphans 2> /dev/null || true
90+
91+ echo " "
92+ log_info " Démarrage du conteneur de test..."
93+ $DOCKER_COMPOSE -f docker-compose.test.yml --env-file .env up -d
94+
95+ echo " "
96+ log_info " Attente du démarrage du conteneur..."
97+ sleep 10
98+
99+ echo " "
100+ log_info " Vérification du statut du conteneur..."
101+ if docker ps | grep azure-agent-test > /dev/null; then
102+ log_success " Conteneur en cours d'exécution"
103+ else
104+ log_error " Conteneur non démarré"
105+ echo " "
106+ log_info " Logs du conteneur :"
107+ docker logs azure-agent-test
108+ exit 1
109+ fi
110+
111+ echo " "
112+ log_info " Affichage des logs (10 dernières lignes)..."
113+ docker logs --tail 10 azure-agent-test
114+
115+ echo " "
116+ log_info " Test de la connectivité aws-ssm..."
117+ if docker exec azure-agent-test aws-ssm --version > /dev/null 2>&1 ; then
118+ log_success " aws-ssm installé et fonctionnel"
119+ else
120+ log_warning " aws-ssm non accessible (peut être normal selon la configuration)"
121+ fi
122+
123+ echo " "
124+ log_info " Test de la connectivité Docker..."
125+ if docker exec azure-agent-test docker --version > /dev/null 2>&1 ; then
126+ log_success " Docker CLI installé et fonctionnel"
127+ else
128+ log_error " Docker CLI non accessible"
129+ fi
130+
131+ echo " "
132+ log_info " Vérification de l'utilisateur..."
133+ USER_INFO=$( docker exec azure-agent-test whoami)
134+ log_info " Utilisateur actuel: $USER_INFO "
135+
136+ echo " "
137+ log_info " Vérification des processus..."
138+ docker exec azure-agent-test ps aux | head -10
139+
140+ echo " "
141+ echo " =================================================="
142+ log_success " Test terminé !"
143+ echo " "
144+ echo " Commandes utiles :"
145+ echo " • Voir les logs en temps réel : docker logs -f azure-agent-test"
146+ echo " • Entrer dans le conteneur : docker exec -it azure-agent-test bash"
147+ echo " • Arrêter le test : $DOCKER_COMPOSE -f docker-compose.test.yml down"
148+ echo " • Supprimer les volumes : $DOCKER_COMPOSE -f docker-compose.test.yml down -v"
149+ echo " "
150+
151+ # Optionnel: démarrer le service de test nginx
152+ read -p " Voulez-vous démarrer le service nginx de test ? (y/N): " -n 1 -r
153+ echo
154+ if [[ $REPLY =~ ^[Yy]$ ]]; then
155+ log_info " Démarrage du service nginx de test..."
156+ $DOCKER_COMPOSE -f docker-compose.test.yml --profile test up -d
157+ log_success " Service nginx démarré sur http://localhost:8080"
158+ fi
0 commit comments