docker-compose.yml 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. version: '3.8'
  2. services:
  3. mysql:
  4. image: mysql:8.0
  5. environment:
  6. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpass}
  7. MYSQL_DATABASE: ${MYSQL_DATABASE:-gestion_locative}
  8. MYSQL_USER: ${MYSQL_USER:-gluser}
  9. MYSQL_PASSWORD: ${MYSQL_PASSWORD:-glpass}
  10. volumes:
  11. - mysql_data:/var/lib/mysql
  12. ports:
  13. - "3306:3306"
  14. healthcheck:
  15. test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-rootpass}"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 10
  19. restart: unless-stopped
  20. backend:
  21. build:
  22. context: ./backend
  23. dockerfile: Dockerfile
  24. ports:
  25. - "3001:3001"
  26. volumes:
  27. - ./backend/uploads:/app/uploads
  28. environment:
  29. - NODE_ENV=production
  30. - JWT_SECRET=${JWT_SECRET:-change_this_secret_in_production}
  31. - DB_HOST=${DB_HOST:-mysql}
  32. - DB_PORT=${DB_PORT:-3306}
  33. - DB_USER=${DB_USER:-gluser}
  34. - DB_PASSWORD=${DB_PASSWORD:-glpass}
  35. - DB_NAME=${DB_NAME:-gestion_locative}
  36. depends_on:
  37. mysql:
  38. condition: service_healthy
  39. restart: unless-stopped
  40. frontend:
  41. build:
  42. context: ./frontend
  43. dockerfile: Dockerfile
  44. args:
  45. VITE_API_URL: http://localhost:3001
  46. ports:
  47. - "3000:80"
  48. depends_on:
  49. - backend
  50. restart: unless-stopped
  51. volumes:
  52. mysql_data: