import React, { useState, useEffect } from 'react'; import { Container, RefreshCw, Clock } from 'lucide-react'; import { getContainers } from '../utils/api'; function formatDate(dateStr) { if (!dateStr) return 'N/A'; try { return new Date(dateStr).toLocaleString('fr-FR'); } catch { return dateStr; } } export default function DockerPage() { const [containers, setContainers] = useState([]); const [loading, setLoading] = useState(true); const fetchContainers = async () => { setLoading(true); try { const res = await getContainers(); setContainers(res.data); } catch (err) { console.error('Erreur chargement conteneurs:', err); } finally { setLoading(false); } }; useEffect(() => { fetchContainers(); const interval = setInterval(fetchContainers, 15000); return () => clearInterval(interval); }, []); const stateColors = { running: 'text-emerald-400 bg-emerald-500/10 border-emerald-500/20', exited: 'text-red-400 bg-red-500/10 border-red-500/20', created: 'text-amber-400 bg-amber-500/10 border-amber-500/20', restarting: 'text-amber-400 bg-amber-500/10 border-amber-500/20', }; return (
Vue d'ensemble de tous les conteneurs sur le serveur
| Nom | Image | État | Statut | ID | Créé |
|---|---|---|---|---|---|
|
|
|||||
| Aucun conteneur trouvé | |||||
| {c.names.join(', ')} |
{c.image}
|
{c.state} | {c.status} |
{c.id}
|
|