Erweiterung meines Docker Setups
Astro hält die Bilder standardmäßig im Repository und optimiert diese beim Bauen. Da sich dadurch das Repo immer weiter aufbläht und die Bilder bei Änderungen unnötig versioniert werden, habe ich mein Docker Setup erweitert und Astro angepasst.
MinIO
Ich habe den Object Storage MinIO eingeführt. Über diesen Service kann ich Bilder hochladen und auch ausliefern.
Leider hat die Einführung von MinIO auch kleine Probleme mit sich gebracht. Die Entwickler von MinIO haben im Oktober 2025 die Bereitstellung der “free” Docker Images eingestellt. Zudem liefert die Web-UI von MinIO keine Möglichkeit, Buckets zu konfigurieren. Deshalb werde ich diesen Service austauschen, sobald ich eine passende Alternative gefunden habe.
OpenS3 Console
Um das Problem mit der Web-UI von MinIO zu umgehen, habe ich einen weiteren Service zu dem Docker Setup hinzugefügt. Die Web-UI, welche ich für MinIO verwende, ist OpenS3 Console. Dadurch habe ich die Möglichkeit, Buckets zu konfigurieren und an meine Bedarfe anzupassen.
Anpassungen an Astro
Um Astro an externe Assets anzubinden, musste ich ein paar Anpassungen vornehmen (z. B. externe Bilder erlauben). Jetzt lädt Astro beim Build die Bilder von meinem Bucket herunter, optimiert diese und liefert sie beim Aufruf aus.
Astro arbeitet also im Prinzip wie bisher: Bilder liegen optimiert im Code und werden von Astro ausgeliefert. Das Einzige, was geändert wurde, ist die Quelle. Die Bilder werden nun beim Build von meinem Bucket gezogen.
Update
Da es Probleme mit MinIO gab, habe ich Garage als alternativen Object Storage getestet, war damit jedoch auch unzufrieden. Nun habe ich mich für Cloudinary entschieden. Dabei handelt es sich um ein Digital Asset Management System, das auch einen Free Tier anbietet.
Die Logik in Astro bleibt dieselbe: Assets werden zur Build-Zeit heruntergeladen, optimiert und lokal zur Auslieferung gespeichert.