Files
bamort/docker/README-dev.md
T
2025-08-13 07:14:04 +02:00

5.2 KiB

Bamort Development Environment

Diese Docker-Konfiguration ermöglicht es, die Bamort-Anwendung in einer Entwicklungsumgebung zu starten, in der Änderungen am Code sofort verfügbar sind.

Voraussetzungen

  • Docker und Docker Compose installiert
  • Ports 8080 (Backend) und 5173 (Frontend) verfügbar

Starten der Entwicklungsumgebung

# Aus dem docker/ Verzeichnis
./start-dev.sh

# Oder manuell
docker-compose -f docker-compose.dev.yml up --build

# Mit benutzerdefinierten Umgebungsvariablen
cp .env.example .env.dev
# Bearbeite .env.dev nach Bedbedarf
docker-compose -f docker-compose.dev.yml --env-file .env.dev up --build

Stoppen der Entwicklungsumgebung

# Aus dem docker/ Verzeichnis
./stop-dev.sh

# Oder manuell
docker-compose -f docker-compose.dev.yml down

Verfügbare Services

MariaDB (Datenbankserver)

  • Port: 3306 (localhost:3306)
  • Datenbank: bamort
  • Benutzer: bamort
  • Passwort: bG4)efozrc (Development)
  • Root-Passwort: root_password_dev
  • Persistent: Daten bleiben bei Container-Neustarts erhalten
  • Health Check: Backend wartet auf Datenbankbereitschaft

phpMyAdmin (Datenbank-Management)

  • URL: http://localhost:8082
  • Server: mariadb (automatisch konfiguriert)
  • Login: root / root_password_dev (oder bamort / bG4)efozrc)
  • Features: Web-basiertes Datenbank-Management
  • Auto-Login: Vorkonfiguriert für MariaDB-Container

Backend (Go mit Air Live-Reloading)

  • URL: http://localhost:8180
  • API-Dokumentation: http://localhost:8180/api (falls verfügbar)
  • Datenbankverbindung: Automatisch konfiguriert zu MariaDB-Container
  • Live-Reloading: Änderungen an Go-Dateien lösen automatisch einen Neustart aus
  • Volume: Backend-Code wird vom lokalen Verzeichnis gemountet

Frontend (Vue.js mit Vite Dev Server)

  • URL: http://localhost:5173
  • Live-Reloading: Änderungen an Vue-Dateien werden sofort übernommen
  • Hot Module Replacement: Aktiviert für schnelle Entwicklung
  • Volume: Frontend-Code wird vom lokalen Verzeichnis gemountet

Entwicklung

Backend-Entwicklung

  • Alle Änderungen an .go Dateien im backend/ Verzeichnis werden automatisch erkannt
  • Der Server wird automatisch neu gestartet bei Änderungen
  • Logs sind in der Docker-Konsole sichtbar

Frontend-Entwicklung

  • Alle Änderungen an Vue-Komponenten, CSS und anderen Assets werden sofort übernommen
  • Vite's Hot Module Replacement sorgt für schnelle Updates ohne vollständigen Page-Reload
  • Build-Fehler werden im Browser angezeigt

Debugging

Backend-Logs anzeigen

docker-compose -f docker-compose.dev.yml logs backend-dev

Frontend-Logs anzeigen

docker-compose -f docker-compose.dev.yml logs frontend-dev

In Container einsteigen

# MariaDB
docker exec -it bamort-mariadb-dev mysql -u bamort -p bamort

# phpMyAdmin (Web-Interface)
# Zugriff über Browser: http://localhost:8082

# Backend
docker exec -it bamort-backend-dev sh

# Frontend
docker exec -it bamort-frontend-dev sh

Datenbank-Management

Web-Interface (phpMyAdmin)

  • URL: http://localhost:8082
  • Login:
    • Root: root / root_password_dev
    • User: bamort / bG4)efozrc
  • Features: Vollständige Datenbankverwaltung über Web-Interface

Kommandozeilen-Zugriff

# Mit mysql client im Container
docker exec -it bamort-mariadb-dev mysql -u bamort -p bamort

# Oder als root
docker exec -it bamort-mariadb-dev mysql -u root -p

Backup/Restore

# Backup erstellen
docker exec bamort-mariadb-dev mysqldump -u bamort -pbG4)efozrc bamort > backup.sql

# Backup einspielen
docker exec -i bamort-mariadb-dev mysql -u bamort -pbG4)efozrc bamort < backup.sql

Datenbank zurücksetzen

# Volumes löschen (alle Daten gehen verloren!)
docker-compose -f docker-compose.dev.yml down -v
docker-compose -f docker-compose.dev.yml up --build

Konfiguration

MariaDB

  • Version: 11.4
  • Charset: utf8mb4
  • Collation: utf8mb4_unicode_ci
  • Initialisierungsskripte: docker/init-db/

Backend

  • Environment: development
  • Datenbanktyp: mysql (MariaDB)
  • Datenbankverbindung: Automatisch konfiguriert
  • Air-Konfiguration: backend/.air.toml
  • Ausgeschlossene Dateien: Tests, Uploads, temporäre Dateien

Frontend

  • Environment: development
  • Vite dev server mit --host 0.0.0.0 für Docker-Zugriff
  • API URL: http://localhost:8080 (konfigurierbar über VITE_API_URL)

Troubleshooting

Port bereits in Verwendung

Stelle sicher, dass die Ports 3306, 8080, 8082, 8180 und 5173 nicht von anderen Anwendungen verwendet werden.

Datenbankverbindungsfehler

  • Warte nach dem Start 10-15 Sekunden, bis MariaDB vollständig initialisiert ist
  • Überprüfe die Logs: docker-compose -f docker-compose.dev.yml logs mariadb

phpMyAdmin nicht erreichbar

  • Stelle sicher, dass Port 8082 frei ist
  • Warte bis MariaDB vollständig gestartet ist
  • Überprüfe die Logs: docker-compose -f docker-compose.dev.yml logs phpmyadmin

Node_modules Probleme

Falls es Probleme mit node_modules gibt:

docker-compose -f docker-compose.dev.yml down -v
docker-compose -f docker-compose.dev.yml up --build

Go Modules Cache

Der Go-Module-Cache wird in einem Volume gespeichert, um Downloads zu beschleunigen.