Merge branch 'FlexiDB'
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Development Dockerfile für Go Backend mit Live-Reloading
|
||||
#FROM golang:1.23-alpine
|
||||
FROM golang:1.24-alpine
|
||||
|
||||
# Install necessary packages for CGO and SQLite
|
||||
RUN apk add --no-cache gcc musl-dev sqlite-dev
|
||||
|
||||
# Install Air für Live-Reloading (kompatible Version für Go 1.23)
|
||||
#RUN go install github.com/cosmtrek/air@v1.49.0
|
||||
RUN go install github.com/air-verse/air@latest
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy go.mod and go.sum first
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Expose port
|
||||
EXPOSE 8180
|
||||
|
||||
# Use Air for live reloading
|
||||
CMD ["air", "-c", ".air.toml"]
|
||||
@@ -0,0 +1,34 @@
|
||||
# Alternative Development Dockerfile ohne Air
|
||||
FROM golang:1.23-alpine
|
||||
|
||||
# Install inotify-tools für File-Watching
|
||||
RUN apk add --no-cache inotify-tools
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy go.mod and go.sum first
|
||||
COPY go.mod go.sum ./
|
||||
RUN go mod download
|
||||
|
||||
# Expose port
|
||||
EXPOSE 8080
|
||||
|
||||
# Simple file watcher script
|
||||
COPY <<EOF /usr/local/bin/watch-and-run.sh
|
||||
#!/bin/sh
|
||||
echo "Starting Go application with file watcher..."
|
||||
go run ./cmd/main.go &
|
||||
PID=$!
|
||||
|
||||
while inotifywait -r -e modify,create,delete,move . --exclude '(\.git|tmp|uploads|testdata)'; do
|
||||
echo "Files changed, restarting..."
|
||||
kill $PID 2>/dev/null
|
||||
sleep 1
|
||||
go run ./cmd/main.go &
|
||||
PID=$!
|
||||
done
|
||||
EOF
|
||||
|
||||
RUN chmod +x /usr/local/bin/watch-and-run.sh
|
||||
|
||||
CMD ["/usr/local/bin/watch-and-run.sh"]
|
||||
@@ -0,0 +1,16 @@
|
||||
# Development Dockerfile für Vue.js Frontend
|
||||
FROM node:18-alpine
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Copy package files
|
||||
COPY package*.json ./
|
||||
|
||||
# Install dependencies
|
||||
RUN npm install
|
||||
|
||||
# Expose Vite dev server port
|
||||
EXPOSE 5173
|
||||
|
||||
# Start development server with host binding for Docker
|
||||
CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"]
|
||||
@@ -0,0 +1,102 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# Aus dem docker/ Verzeichnis
|
||||
./start-dev.sh
|
||||
|
||||
# Oder manuell
|
||||
docker-compose -f docker-compose.dev.yml up --build
|
||||
```
|
||||
|
||||
## Stoppen der Entwicklungsumgebung
|
||||
|
||||
```bash
|
||||
# Aus dem docker/ Verzeichnis
|
||||
./stop-dev.sh
|
||||
|
||||
# Oder manuell
|
||||
docker-compose -f docker-compose.dev.yml down
|
||||
```
|
||||
|
||||
## Verfügbare Services
|
||||
|
||||
### Backend (Go mit Air Live-Reloading)
|
||||
- **URL**: http://localhost:8080
|
||||
- **API-Dokumentation**: http://localhost:8080/api (falls verfügbar)
|
||||
- **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
|
||||
```bash
|
||||
docker-compose -f docker-compose.dev.yml logs backend-dev
|
||||
```
|
||||
|
||||
### Frontend-Logs anzeigen
|
||||
```bash
|
||||
docker-compose -f docker-compose.dev.yml logs frontend-dev
|
||||
```
|
||||
|
||||
### In Container einsteigen
|
||||
```bash
|
||||
# Backend
|
||||
docker exec -it bamort-backend-dev sh
|
||||
|
||||
# Frontend
|
||||
docker exec -it bamort-frontend-dev sh
|
||||
```
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Backend
|
||||
- Environment: `development`
|
||||
- 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 8080 und 5173 nicht von anderen Anwendungen verwendet werden.
|
||||
|
||||
### Node_modules Probleme
|
||||
Falls es Probleme mit node_modules gibt:
|
||||
```bash
|
||||
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.
|
||||
@@ -0,0 +1,40 @@
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
backend-dev:
|
||||
build:
|
||||
context: ../backend
|
||||
dockerfile: ../docker/Dockerfile.backend.dev
|
||||
container_name: bamort-backend-dev
|
||||
ports:
|
||||
- "8180:8180"
|
||||
volumes:
|
||||
- ../backend:/app
|
||||
- go-mod-cache:/go/pkg/mod
|
||||
environment:
|
||||
- GO_ENV=development
|
||||
- CGO_ENABLED=0
|
||||
#- CGO_ENABLED=1
|
||||
working_dir: /app
|
||||
# Restart if Go code changes cause crash
|
||||
restart: unless-stopped
|
||||
|
||||
frontend-dev:
|
||||
build:
|
||||
context: ../frontend
|
||||
dockerfile: ../docker/Dockerfile.frontend.dev
|
||||
container_name: bamort-frontend-dev
|
||||
ports:
|
||||
- "5173:5173" # Vite dev server port
|
||||
volumes:
|
||||
- ../frontend:/app
|
||||
- /app/node_modules # Prevent overwriting node_modules
|
||||
environment:
|
||||
- NODE_ENV=development
|
||||
- VITE_API_URL=http://localhost:8080
|
||||
depends_on:
|
||||
- backend-dev
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
go-mod-cache:
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "docker",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {}
|
||||
}
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🚀 Starting Bamort Development Environment..."
|
||||
|
||||
# Prüfe ob Docker läuft
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
echo "❌ Docker ist nicht gestartet. Bitte starte Docker zuerst."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Gehe ins Docker-Verzeichnis
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
echo "📦 Building and starting development containers..."
|
||||
|
||||
# Stoppe vorhandene Container
|
||||
docker-compose -f docker-compose.dev.yml down
|
||||
|
||||
# Baue und starte die Container
|
||||
docker-compose -f docker-compose.dev.yml up --build
|
||||
|
||||
echo "✅ Development environment stopped."
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "🛑 Stopping Bamort Development Environment..."
|
||||
|
||||
# Gehe ins Docker-Verzeichnis
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Stoppe und entferne Container
|
||||
docker-compose -f docker-compose.dev.yml down
|
||||
|
||||
echo "✅ Development environment stopped."
|
||||
Reference in New Issue
Block a user