docker-compose.prod.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. version: '3.8'
  2. services:
  3. # Backend PHP Service
  4. backend:
  5. build:
  6. context: .
  7. dockerfile: Dockerfile
  8. container_name: inventory-backend-prod
  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}
  18. - COMPANY_ADDRESS=${COMPANY_ADDRESS}
  19. - COMPANY_CITY=${COMPANY_CITY}
  20. - COMPANY_POSTAL_CODE=${COMPANY_POSTAL_CODE}
  21. - COMPANY_COUNTRY=${COMPANY_COUNTRY}
  22. - COMPANY_PHONE=${COMPANY_PHONE}
  23. - COMPANY_EMAIL=${COMPANY_EMAIL}
  24. - COMPANY_Y_TUNNUS=${COMPANY_Y_TUNNUS}
  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. networks:
  30. - inventory-network
  31. restart: unless-stopped
  32. healthcheck:
  33. test: ["CMD", "curl", "-f", "http://localhost/api/company.php"]
  34. interval: 30s
  35. timeout: 10s
  36. retries: 3
  37. # Frontend Vue.js Service
  38. frontend:
  39. build:
  40. context: ./frontend
  41. dockerfile: Dockerfile
  42. args:
  43. - VUE_APP_API_URL=${VUE_APP_API_URL:-http://localhost:${BACKEND_PORT:-8080}}
  44. container_name: inventory-frontend-prod
  45. ports:
  46. - "${FRONTEND_PORT:-3000}:80"
  47. depends_on:
  48. - backend
  49. networks:
  50. - inventory-network
  51. restart: unless-stopped
  52. healthcheck:
  53. test: ["CMD", "curl", "-f", "http://localhost/"]
  54. interval: 30s
  55. timeout: 10s
  56. retries: 3
  57. # Redis Cache Service
  58. redis:
  59. image: redis:7-alpine
  60. container_name: inventory-redis-prod
  61. volumes:
  62. - redis_data:/data
  63. - ./docker/redis/redis.conf:/usr/local/etc/redis/redis.conf:ro
  64. networks:
  65. - inventory-network
  66. restart: unless-stopped
  67. command: redis-server /usr/local/etc/redis/redis.conf
  68. healthcheck:
  69. test: ["CMD", "redis-cli", "ping"]
  70. interval: 30s
  71. timeout: 10s
  72. retries: 3
  73. volumes:
  74. redis_data:
  75. driver: local
  76. uploads_data:
  77. driver: local
  78. driver_opts:
  79. type: none
  80. o: bind
  81. device: ${UPLOADS_PATH:-/var/inventory/uploads}
  82. networks:
  83. inventory-network:
  84. driver: bridge