docker-compose.yml 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. version: '3.8'
  2. services:
  3. # Backend PHP Service
  4. backend:
  5. build:
  6. context: .
  7. dockerfile: Dockerfile
  8. container_name: inventory-backend
  9. ports:
  10. - "${BACKEND_PORT:-8080}:80"
  11. environment:
  12. - DB_HOST=${DB_HOST}
  13. - DB_PORT=${DB_PORT}
  14. - DB_NAME=${DB_NAME}
  15. - DB_USER=${DB_USER}
  16. - DB_PASS=${DB_PASS}
  17. - COMPANY_NAME=${COMPANY_NAME:-Inventory Management}
  18. - COMPANY_ADDRESS=${COMPANY_ADDRESS:-123 Business St}
  19. - COMPANY_CITY=${COMPANY_CITY:-Helsinki}
  20. - COMPANY_POSTAL_CODE=${COMPANY_POSTAL_CODE:-00100}
  21. - COMPANY_COUNTRY=${COMPANY_COUNTRY:-Finland}
  22. - COMPANY_PHONE=${COMPANY_PHONE:-+358 123 456 789}
  23. - COMPANY_EMAIL=${COMPANY_EMAIL:-info@company.com}
  24. - COMPANY_Y_TUNNUS=${COMPANY_Y_TUNNUS:-1234567-8}
  25. - UPLOAD_MAX_SIZE=${UPLOAD_MAX_SIZE:-10M}
  26. - ALLOWED_FILE_TYPES=${ALLOWED_FILE_TYPES:-pdf,doc,docx,xls,xlsx,jpg,jpeg,png,gif}
  27. volumes:
  28. - uploads_data:/var/www/html/uploads
  29. - ./backend:/var/www/html
  30. networks:
  31. - inventory-network
  32. restart: unless-stopped
  33. # Frontend Vue.js Service
  34. frontend:
  35. build:
  36. context: ./frontend
  37. dockerfile: Dockerfile
  38. container_name: inventory-frontend
  39. ports:
  40. - "${FRONTEND_PORT:-3000}:80"
  41. environment:
  42. - VUE_APP_API_URL=${VUE_APP_API_URL:-http://localhost:8080}
  43. depends_on:
  44. - backend
  45. networks:
  46. - inventory-network
  47. restart: unless-stopped
  48. # Redis Cache Service (Optional)
  49. redis:
  50. image: redis:7-alpine
  51. container_name: inventory-redis
  52. ports:
  53. - "${REDIS_PORT:-6379}:6379"
  54. volumes:
  55. - redis_data:/data
  56. networks:
  57. - inventory-network
  58. restart: unless-stopped
  59. command: redis-server --appendonly yes
  60. volumes:
  61. redis_data:
  62. driver: local
  63. uploads_data:
  64. driver: local
  65. driver_opts:
  66. type: none
  67. o: bind
  68. device: ${UPLOADS_PATH:-./uploads}
  69. networks:
  70. inventory-network:
  71. driver: bridge