Add docker-compose.yml for easy deployment
All checks were successful
Docker Build & Push / build-and-push (push) Successful in 9s

This commit is contained in:
Gemini Agent
2026-05-11 15:29:28 +00:00
parent 02f7e2b059
commit 6903582681
2 changed files with 31 additions and 35 deletions

View File

@@ -61,48 +61,25 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung
```
* *Hinweis:* Die Anwendung sucht standardmäßig unter `../config.ini`.
### Docker Deployment
### Docker Deployment (Empfohlen)
Die Anwendung ist vollständig containerisiert ("Dockerized"). Du kannst sie direkt als Container starten und mit einer beliebigen externen MySQL/MariaDB-Datenbank verbinden.
Die Anwendung wird bei jedem Push ins Git automatisch gebaut und in der internen Registry `172.30.1.213` als Docker-Image zur Verfügung gestellt. Du kannst sie ganz bequem per Docker Compose bereitstellen.
1. **Image bauen:**
1. **Konfigurieren:**
Passe die Datenbank-Zugangsdaten in der beiliegenden `docker-compose.yml` an.
2. **Starten:**
Führe im Verzeichnis den folgenden Befehl aus:
```bash
docker build -t packliste-app .
docker compose up -d
```
2. **Container starten:**
(Ersetze die Platzhalter durch deine Datenbank-Zugangsdaten)
3. **Update (Aktualisierung):**
Wenn ein neues Update verfügbar ist, reicht dieser Einzeiler:
```bash
docker run -d \
-p 8080:80 \
-e DB_HOST="deine-datenbank-ip" \
-e DB_USER="dein_db_user" \
-e DB_PASSWORD="dein_db_passwort" \
-e DB_NAME="packliste" \
-v packliste_uploads:/var/www/html/uploads \
--name packliste-container \
packliste-app
docker compose pull && docker compose up -d
```
*Hinweis:* Bilder werden im Volume `packliste_uploads` gespeichert. Das Git-Repository enthält keine Nutzer-Bilder.
3. **Update & Rebuild (Aktualisierung):**
Wenn du Änderungen aus dem Git ziehen ("den Rotz ziehen") und die App aktualisieren willst:
```bash
# 1. Neuesten Code holen
git pull origin master
# 2. Container stoppen und löschen (Datenbank & Uploads bleiben im Volume erhalten!)
docker stop packliste-container
docker rm packliste-container
# 3. Image neu bauen
docker build -t packliste-app .
# 4. Neuen Container starten (gleicher Befehl wie oben)
docker run -d ... (siehe oben)
```
Die App ist anschließend unter `http://localhost:8080` erreichbar.
(Die alten Container werden automatisch ersetzt, das Volume mit den hochgeladenen Bildern bleibt erhalten.)
---

19
docker-compose.yml Normal file
View File

@@ -0,0 +1,19 @@
version: '3.8'
services:
packliste:
image: 172.30.1.213/admin/packliste:latest
container_name: packliste-app
restart: unless-stopped
ports:
- "8080:80"
environment:
- DB_HOST=deine-datenbank-ip # BITTE ANPASSEN
- DB_USER=dein_db_user # BITTE ANPASSEN
- DB_PASSWORD=dein_db_passwort # BITTE ANPASSEN
- DB_NAME=packliste # BITTE ANPASSEN
volumes:
- packliste_uploads:/var/www/html/uploads
volumes:
packliste_uploads: