| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- version: '3.8'
- services:
- # Unified Backend + Frontend Application (Production)
- app:
- build:
- context: .
- dockerfile: Dockerfile.unified
- args:
- - VUE_APP_API_URL=/api
- container_name: inventory-app-prod
- ports:
- - "${FRONTEND_PORT:-3000}:80"
- environment:
- # Database Configuration
- - DB_HOST=${DB_HOST:-127.0.0.1}
- - DB_PORT=${DB_PORT:-3306}
- - DB_NAME=${DB_NAME:-inventory_db}
- - DB_USER=${DB_USER:-root}
- - DB_PASS=${DB_PASS:-root}
-
- # Company Information
- - COMPANY_NAME=${COMPANY_NAME:-Your Company Name}
- - COMPANY_ADDRESS=${COMPANY_ADDRESS:-123 Business Street}
- - COMPANY_POSTAL_CODE=${COMPANY_POSTAL_CODE:-00100}
- - COMPANY_CITY=${COMPANY_CITY:-Helsinki}
- - COMPANY_COUNTRY=${COMPANY_COUNTRY:-Finland}
- - COMPANY_PHONE=${COMPANY_PHONE:-+358 123 456 789}
- - COMPANY_EMAIL=${COMPANY_EMAIL:-info@company.com}
- - COMPANY_Y_TUNNUS=${COMPANY_Y_TUNNUS:-1234567-8}
-
- # File Upload Configuration
- - UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-10M}
- - ALLOWED_FILE_TYPES=${ALLOWED_FILE_TYPES:-pdf,doc,docx,xls,xlsx,jpg,jpeg,png,gif}
- - UPLOADS_PATH=${UPLOADS_PATH:-./uploads}
-
- # Frontend Configuration (relative path for internal communication)
- - VUE_APP_API_URL=/api
-
- # Optional: Redis Configuration
- - REDIS_HOST=${REDIS_HOST:-redis}
- - REDIS_PORT=${REDIS_PORT:-6379}
-
- # Optional: Email Configuration (for future use)
- - MAIL_HOST=${MAIL_HOST:-smtp.gmail.com}
- - MAIL_PORT=${MAIL_PORT:-587}
- - MAIL_USERNAME=${MAIL_USERNAME:-your-email@gmail.com}
- - MAIL_PASSWORD=${MAIL_PASSWORD:-your-app-password}
-
- volumes:
- - ./uploads:/var/www/html/uploads
- - ./backend:/var/www/html
- networks:
- - inventory-network
- restart: unless-stopped
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost/api/company.php"]
- interval: 30s
- timeout: 10s
- retries: 3
- start_period: 40s
- # Redis Service (optional)
- redis:
- image: redis:7-alpine
- container_name: inventory-redis-prod
- ports:
- - "${REDIS_PORT:-6379}:6379"
- volumes:
- - redis_data:/data
- networks:
- - inventory-network
- restart: unless-stopped
- command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
- # Networks
- networks:
- inventory-network:
- driver: bridge
- # Volumes
- volumes:
- uploads_data:
- driver: local
- redis_data:
- driver: local
|