docker setup
# Conflicts: # .gitignore # backend/vite.config.js # frontend/package-lock.json
This commit is contained in:
parent
f01a0a967f
commit
c62234e1ca
546 changed files with 141382 additions and 757 deletions
207
.devcontainer/README.md
Normal file
207
.devcontainer/README.md
Normal file
|
|
@ -0,0 +1,207 @@
|
|||
# DevContainer Setup für Thats-Me
|
||||
|
||||
## Was ist ein DevContainer?
|
||||
|
||||
Ein DevContainer ist eine vollständige Entwicklungsumgebung in Docker. Cursor/VSCode läuft direkt im Container und Sie entwickeln mit allen Tools, die bereits vorinstalliert sind.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
1. **Docker Desktop** muss laufen
|
||||
2. **Traefik Proxy** als externes Netzwerk:
|
||||
```bash
|
||||
docker network create proxy
|
||||
```
|
||||
|
||||
## DevContainer starten
|
||||
|
||||
1. **In Cursor/VSCode:**
|
||||
|
||||
- Drücken Sie `Cmd+Shift+P` (macOS) oder `Ctrl+Shift+P` (Windows/Linux)
|
||||
- Wählen Sie: **"Dev Containers: Reopen in Container"**
|
||||
- Warten Sie, bis alle Container gebaut und gestartet sind
|
||||
|
||||
2. **Beim ersten Start:**
|
||||
- Der Laravel Container wird gebaut (kann einige Minuten dauern)
|
||||
- Alle Services werden gestartet (MySQL, Redis, Mailpit, Quasar)
|
||||
- Sie werden automatisch im Laravel Container eingeloggt
|
||||
|
||||
## Was passiert beim Start?
|
||||
|
||||
Der DevContainer startet folgende Services:
|
||||
|
||||
- **laravel.test** - Laravel Backend (Sie arbeiten in diesem Container)
|
||||
- **mysql** - Datenbank
|
||||
- **redis** - Cache/Queue
|
||||
- **mailpit** - E-Mail Testing
|
||||
- **quasar.app** - Frontend App (läuft automatisch)
|
||||
|
||||
## Arbeiten im Container
|
||||
|
||||
### Terminal
|
||||
|
||||
Das Terminal in Cursor/VSCode ist bereits im Container. Sie können direkt arbeiten:
|
||||
|
||||
```bash
|
||||
# Sie sind im /var/www/html Verzeichnis (= ./backend vom Host)
|
||||
php artisan migrate
|
||||
php artisan serve
|
||||
composer install
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
### Verfügbare Services
|
||||
|
||||
Im DevContainer können Sie direkt auf die anderen Services zugreifen:
|
||||
|
||||
```bash
|
||||
# MySQL Verbindung
|
||||
mysql -h mysql -u sail -p
|
||||
# Passwort: password
|
||||
|
||||
# Redis
|
||||
redis-cli -h redis
|
||||
|
||||
# Composer
|
||||
composer install
|
||||
composer update
|
||||
|
||||
# Artisan
|
||||
php artisan migrate
|
||||
php artisan tinker
|
||||
```
|
||||
|
||||
## Zugriff von außerhalb
|
||||
|
||||
### Von Ihrem Browser (Host)
|
||||
|
||||
Die Ports werden automatisch weitergeleitet:
|
||||
|
||||
- **Laravel App:** http://localhost (Port 80)
|
||||
- **Vite Dev Server:** http://localhost:5173
|
||||
- **Mailpit Dashboard:** http://localhost:8025
|
||||
- **Quasar App:** http://localhost:9000
|
||||
|
||||
### Mit Traefik
|
||||
|
||||
Wenn Traefik läuft, können Sie auch die Domains verwenden:
|
||||
|
||||
- https://thats-me.test
|
||||
- https://portal.thats-me.test
|
||||
- https://api.thats-me.test
|
||||
- https://app.thats-me.test
|
||||
- https://assets.thats-me.test
|
||||
|
||||
## Backend .env Konfiguration
|
||||
|
||||
Stellen Sie sicher, dass `backend/.env` folgende Werte hat:
|
||||
|
||||
```env
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=mysql
|
||||
DB_PORT=3306
|
||||
DB_DATABASE=thats-me
|
||||
DB_USERNAME=sail
|
||||
DB_PASSWORD=password
|
||||
|
||||
MAIL_MAILER=smtp
|
||||
MAIL_HOST=mailpit
|
||||
MAIL_PORT=1025
|
||||
|
||||
REDIS_HOST=redis
|
||||
REDIS_PORT=6379
|
||||
```
|
||||
|
||||
## Vite Dev Server starten
|
||||
|
||||
```bash
|
||||
# Im DevContainer Terminal
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Vite läuft dann auf Port 5173 und ist verfügbar unter:
|
||||
|
||||
- http://localhost:5173 (vom Host)
|
||||
- https://assets.thats-me.test (mit Traefik)
|
||||
|
||||
## Quasar App
|
||||
|
||||
Die Quasar App läuft automatisch in einem separaten Container und ist verfügbar unter:
|
||||
|
||||
- http://localhost:9000 (vom Host)
|
||||
- https://app.thats-me.test (mit Traefik)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Container startet nicht
|
||||
|
||||
```bash
|
||||
# Schließen Sie den DevContainer
|
||||
# Öffnen Sie ein normales Terminal auf dem Host
|
||||
docker-compose down -v
|
||||
docker-compose build --no-cache
|
||||
# Dann neu starten: "Dev Containers: Reopen in Container"
|
||||
```
|
||||
|
||||
### "Dockerfile not found" Fehler
|
||||
|
||||
Stellen Sie sicher, dass Laravel Sail installiert ist:
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
composer require laravel/sail --dev
|
||||
```
|
||||
|
||||
### Permission-Probleme
|
||||
|
||||
Die User-IDs in `devcontainer.json` anpassen:
|
||||
|
||||
```json
|
||||
"containerEnv": {
|
||||
"WWWUSER": "1000", // Ihre User-ID
|
||||
"WWWGROUP": "1000" // Ihre Group-ID
|
||||
}
|
||||
```
|
||||
|
||||
Finden Sie Ihre IDs mit:
|
||||
|
||||
```bash
|
||||
id -u # User ID
|
||||
id -g # Group ID
|
||||
```
|
||||
|
||||
### Logs ansehen
|
||||
|
||||
```bash
|
||||
# Im DevContainer Terminal
|
||||
docker-compose logs -f
|
||||
|
||||
# Nur MySQL
|
||||
docker-compose logs -f mysql
|
||||
|
||||
# Nur Quasar
|
||||
docker-compose logs -f quasar.app
|
||||
```
|
||||
|
||||
## DevContainer verlassen
|
||||
|
||||
1. Drücken Sie `Cmd+Shift+P` / `Ctrl+Shift+P`
|
||||
2. Wählen Sie: **"Dev Containers: Reopen Folder Locally"**
|
||||
|
||||
## Container stoppen
|
||||
|
||||
Nach dem Verlassen des DevContainers:
|
||||
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
## Vorteile des DevContainers
|
||||
|
||||
✅ Alle arbeiten mit der gleichen Umgebung
|
||||
✅ Keine lokale PHP/MySQL Installation nötig
|
||||
✅ Automatische Service-Verwaltung
|
||||
✅ Isolierte Entwicklungsumgebung
|
||||
✅ Einfaches Onboarding für neue Entwickler
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue