From 9c227cc3206fd32801012eda4600a2e4b7c25c01 Mon Sep 17 00:00:00 2001 From: Florian Uhlig Date: Sat, 4 Oct 2025 23:59:50 +0200 Subject: [PATCH] Fixing error on device --- Dockerfile | 4 +-- docker-compose.yml | 61 +++++++++++++++++++++++++++----------------- docker-entrypoint.sh | 7 ++--- 3 files changed, 43 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index eb43eb6..1645669 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM python:3.11-slim # Set maintainer -LABEL maintainer="your-email@example.com" +LABEL maintainer="fuh@fuhlig.de" LABEL description="PY_ChatBot - Modern Flask-based Chatbot Application" # Set environment variables @@ -57,4 +57,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ ENTRYPOINT ["docker-entrypoint.sh"] # Default command -CMD ["python", "main.py"] \ No newline at end of file +CMD ["python", "main.py"] diff --git a/docker-compose.yml b/docker-compose.yml index 8e97c01..209adbe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,6 @@ services: - # Main ChatBot Application chatbot: - build: + build: context: . dockerfile: Dockerfile container_name: py_chatbot @@ -12,13 +11,13 @@ services: # Database Configuration - DB_TYPE=sqlite - SQLITE_PATH=/app/data/chatbot.db - - # Flask Configuration + + # Flask Configuration - FLASK_HOST=0.0.0.0 - FLASK_PORT=8080 - FLASK_DEBUG=false - FLASK_SECRET_KEY=your-super-secret-key-change-this-in-production - + # Session Configuration - SESSION_LIFETIME_HOURS=24 - SESSION_COOKIE_SECURE=false @@ -36,22 +35,34 @@ services: retries: 3 start_period: 30s - # Optional: PostgreSQL Database (for production) - #postgres: - # image: postgres:15-alpine - # container_name: py_chatbot_postgres - # restart: unless-stopped - # environment: - # - POSTGRES_DB=chatbot - # - POSTGRES_USER=chatbot_user - # - POSTGRES_PASSWORD=secure_password_change_this - # volumes: - # - postgres_data:/var/lib/postgresql/data - # - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro - # networks: - # - chatbot_network - # profiles: - # - postgres + postgres: + image: postgres:15-alpine + container_name: py_chatbot_postgres + restart: unless-stopped + environment: + - POSTGRES_DB=chatbot + - POSTGRES_USER=chatbot_user + - POSTGRES_PASSWORD=secure_password_change_this + volumes: + - postgres_data:/var/lib/postgresql/data + - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro + networks: + - chatbot_network + profiles: + - postgres + + # Optional: Redis for Session Storage + redis: + image: redis:7-alpine + container_name: py_chatbot_redis + restart: unless-stopped + command: redis-server --appendonly yes --requirepass secure_redis_password_change_this + volumes: + - redis_data:/data + networks: + - chatbot_network + profiles: + - redis # Named Volumes volumes: @@ -59,10 +70,12 @@ volumes: driver: local chatbot_logs: driver: local - #postgres_data: - # driver: local + postgres_data: + driver: local + redis_data: + driver: local # Networks networks: chatbot_network: - driver: bridge \ No newline at end of file + driver: bridge diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 82e108c..d695393 100644 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -2,9 +2,10 @@ set -e echo "🤖 Starting PY_ChatBot..." +# Create directory for database dynamically based on SQLITE_PATH -# Create directories if they don't exist -mkdir -p /app/databases /app/logs +DB_DIR=$(dirname "$SQLITE_PATH") +mkdir -p "$DB_DIR" /app/logs # Set default environment variables if not provided export DB_TYPE=${DB_TYPE:-sqlite} @@ -49,4 +50,4 @@ echo " - Flask Port: $FLASK_PORT" echo " - Debug Mode: $FLASK_DEBUG" # Execute the command -exec "$@" \ No newline at end of file +exec "$@"