From 6903582681e1b07e927889a85f769078f314272e Mon Sep 17 00:00:00 2001 From: Gemini Agent Date: Mon, 11 May 2026 15:29:28 +0000 Subject: [PATCH] Add docker-compose.yml for easy deployment --- README.md | 47 ++++++++++++---------------------------------- docker-compose.yml | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 35 deletions(-) create mode 100644 docker-compose.yml diff --git a/README.md b/README.md index 883c02c..60e7e4e 100644 --- a/README.md +++ b/README.md @@ -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.) --- diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..fe1cc03 --- /dev/null +++ b/docker-compose.yml @@ -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: