API updadte

This commit is contained in:
2025-11-09 11:27:21 +01:00
parent 77206224a2
commit 4953d192c0
8 changed files with 2343 additions and 784 deletions

337
docs/docker.md Normal file
View File

@@ -0,0 +1,337 @@
# Docker
[← Zurück zur Hauptseite](../README.md)
## Container-Übersicht
Das Projekt verwendet 3 Docker-Container:
| Container | Image | Port | Beschreibung |
|-----------|-------|------|--------------|
| `immorechner_web` | Custom (PHP 8.4 + Apache) | 8080 | Web-Server & PHP |
| `immorechner_db` | mariadb:latest | 3306 | Datenbank |
| `immorechner_phpmyadmin` | phpmyadmin:latest | 8081 | DB-Verwaltung |
## Container-Management
### Starten
```bash
# Alle Container starten
docker-compose up -d
# Mit Build (nach Dockerfile-Änderungen)
docker-compose up -d --build
# Im Vordergrund (mit Logs)
docker-compose up
```
### Stoppen
```bash
# Container stoppen
docker-compose stop
# Container stoppen und entfernen
docker-compose down
# Container stoppen, entfernen + Volumes löschen
docker-compose down -v
```
### Neustarten
```bash
# Alle Container
docker-compose restart
# Einzelner Container
docker-compose restart web
docker-compose restart db
```
### Status prüfen
```bash
# Container-Status
docker-compose ps
# Alle Container (auch gestoppte)
docker ps -a
# Resource-Usage
docker stats
```
## Logs
### Container-Logs anzeigen
```bash
# Alle Container (Live)
docker-compose logs -f
# Nur Web-Container
docker-compose logs -f web
# Nur Datenbank
docker-compose logs -f db
# Nur phpMyAdmin
docker-compose logs -f phpmyadmin
# Letzte 100 Zeilen
docker-compose logs --tail=100 web
```
### Apache-Logs
```bash
# Access Log
docker-compose exec web tail -f /var/log/apache2/access.log
# Error Log
docker-compose exec web tail -f /var/log/apache2/error.log
```
### Symfony-Logs
```bash
# Dev Log
docker-compose exec web tail -f /var/www/html/var/log/dev.log
# Prod Log
docker-compose exec web tail -f /var/www/html/var/log/prod.log
```
## Container-Zugriff
### In Container einloggen
```bash
# Web-Container (Bash)
docker-compose exec web bash
# Datenbank-Container
docker-compose exec db bash
# phpMyAdmin-Container
docker-compose exec phpmyadmin bash
```
### Als Root einloggen
```bash
docker-compose exec -u root web bash
```
## Befehle im Container ausführen
### PHP/Symfony
```bash
# Symfony Console
docker-compose exec web php bin/console
# PHP-Version prüfen
docker-compose exec web php -v
# PHP-Module anzeigen
docker-compose exec web php -m
# PHP-Konfiguration
docker-compose exec web php -i
```
### Composer
```bash
# Install
docker-compose exec web composer install
# Update
docker-compose exec web composer update
# Paket hinzufügen
docker-compose exec web composer require vendor/package
# Paket entfernen
docker-compose exec web composer remove vendor/package
# Autoloader neu generieren
docker-compose exec web composer dump-autoload
```
### Datenbank
```bash
# MariaDB-Client öffnen
docker-compose exec db mariadb -u root -proot immorechner
# SQL-Datei importieren
docker-compose exec -T db mariadb -u root -proot immorechner < backup.sql
# Datenbank exportieren
docker-compose exec db mariadb-dump -u root -proot immorechner > backup.sql
# Tabellen anzeigen
docker-compose exec db mariadb -u root -proot -e "SHOW TABLES" immorechner
```
## Volumes
### Volumes anzeigen
```bash
docker volume ls
```
### Volume-Details
```bash
docker volume inspect immorechner_db_data
```
### Volume löschen
```bash
# ACHTUNG: Löscht alle Daten!
docker volume rm immorechner_db_data
```
### Backup erstellen
```bash
# Datenbank-Backup
docker-compose exec db mariadb-dump -u root -proot immorechner > backup_$(date +%Y%m%d).sql
# Volume-Backup
docker run --rm -v immorechner_db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz /data
```
## Images
### Images anzeigen
```bash
docker images
```
### Image neu bauen
```bash
docker-compose build web
```
### Image mit Tag
```bash
docker build -t immorechner:latest .
```
### Image löschen
```bash
docker rmi immorechner-web
```
## Netzwerk
### Netzwerke anzeigen
```bash
docker network ls
```
### Netzwerk-Details
```bash
docker network inspect immorechner_immorechner_network
```
### Container im Netzwerk
```bash
docker network inspect immorechner_immorechner_network | grep Name
```
## Cleanup
### Gestoppte Container entfernen
```bash
docker container prune
```
### Ungenutzte Images entfernen
```bash
docker image prune
```
### Ungenutzte Volumes entfernen
```bash
docker volume prune
```
### Alles aufräumen
```bash
# ACHTUNG: Löscht alles Ungenutzte!
docker system prune -a --volumes
```
## Troubleshooting
### Container startet nicht
```bash
# Logs prüfen
docker-compose logs web
# Container im Debug-Modus starten
docker-compose up web
```
### Port bereits belegt
```bash
# Ports prüfen
netstat -ano | findstr :8080 # Windows
lsof -i :8080 # Mac/Linux
# In docker-compose.yml ändern:
ports:
- "8090:80" # Statt 8080:80
```
### Berechtigungsprobleme
```bash
# Berechtigungen setzen
docker-compose exec -u root web chown -R www-data:www-data /var/www/html
# Schreibrechte für var/
docker-compose exec -u root web chmod -R 777 /var/www/html/var
```
### Container-Reset
```bash
# Komplett neu starten
docker-compose down -v
docker-compose up -d --build
docker-compose exec web composer install
docker-compose exec web php bin/console doctrine:migrations:migrate --no-interaction
```
---
**Siehe auch:**
- [Installation](installation.md) - Setup-Anleitung
- [Development](development.md) - Entwickler-Workflow
- [Troubleshooting](troubleshooting.md) - Fehler beheben
[← Zurück zur Hauptseite](../README.md)