From 1d9424046e746bfd316ab8c7e1a9f9060a17fa2c Mon Sep 17 00:00:00 2001 From: Gemini Agent Date: Fri, 5 Dec 2025 16:53:37 +0000 Subject: [PATCH] Docker Support: Added Dockerfile, updated DB connection for ENVs, and documented Docker usage in README --- Dockerfile | 23 +++++++++++++++++++++-- README.md | 23 +++++++++++++++++++++++ db_connect.php | 43 ++++++++++++++++++++++--------------------- 3 files changed, 66 insertions(+), 23 deletions(-) mode change 100755 => 100644 db_connect.php diff --git a/Dockerfile b/Dockerfile index 67c0c28..c5e1386 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,23 @@ FROM php:8.2-apache -RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli -# Enable mod_rewrite for cleaner URLs if needed, though not strictly requested, it's good practice. + +# Install dependencies +RUN apt-get update && apt-get install -y \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install -j$(nproc) gd mysqli + +# Enable Apache rewrite module RUN a2enmod rewrite + +# Copy application source +COPY . /var/www/html/ + +# Set permissions for upload directory +RUN mkdir -p /var/www/html/uploads/images && \ + chown -R www-data:www-data /var/www/html/uploads && \ + chmod -R 755 /var/www/html/uploads + +# Expose port 80 +EXPOSE 80 diff --git a/README.md b/README.md index ac7a350..4dc3a59 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,29 @@ Eine moderne, webbasierte Anwendung zur Verwaltung von Packlisten für Wanderung 1. Führe das SQL-Skript `mysql_update.sql` auf deiner Datenbank aus. 2. Überschreibe die PHP-Dateien mit der neuesten Version. +### Docker Deployment + +Die Anwendung ist vollständig containerisiert ("Dockerized"). Du kannst sie direkt als Container starten und mit einer beliebigen externen MySQL/MariaDB-Datenbank verbinden. + +1. **Image bauen:** + ```bash + docker build -t packliste-app . + ``` + +2. **Container starten:** + (Ersetze die Platzhalter durch deine Datenbank-Zugangsdaten) + ```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" \ + --name packliste-container \ + packliste-app + ``` + Die App ist anschließend unter `http://localhost:8080` erreichbar. + --- ## Bedienungsanleitung diff --git a/db_connect.php b/db_connect.php old mode 100755 new mode 100644 index 536ff00..1ab0bb0 --- a/db_connect.php +++ b/db_connect.php @@ -1,41 +1,42 @@ connect_error) { - // In einer Produktivumgebung sollte der Fehler geloggt, aber nicht dem Benutzer angezeigt werden. error_log("Datenbankverbindungsfehler: " . $conn->connect_error); - die("Verbindung zur Datenbank konnte nicht hergestellt werden. Bitte versuchen Sie es später erneut."); + die("Verbindung zur Datenbank konnte nicht hergestellt werden."); } -// Zeichensatz auf UTF-8 setzen, um Probleme mit Sonderzeichen zu vermeiden +// Zeichensatz auf UTF-8 setzen $conn->set_charset("utf8mb4"); -// NEU: Setze eine Standard-Zeitzone, um konsistente Zeitstempel zu gewährleisten. +// Zeitzone setzen date_default_timezone_set('Europe/Berlin'); - ?>