docker-compose.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. version: "3.9"
  2. services:
  3. postgres:
  4. image: postgis/postgis:16-3.4-alpine
  5. environment:
  6. POSTGRES_DB: photoplaces
  7. POSTGRES_USER: photoplaces
  8. POSTGRES_PASSWORD: photoplaces_dev
  9. ports:
  10. - "5432:5432"
  11. volumes:
  12. - pgdata:/var/lib/postgresql/data
  13. healthcheck:
  14. test: ["CMD-SHELL", "pg_isready -U photoplaces"]
  15. interval: 5s
  16. retries: 5
  17. redis:
  18. image: redis:7-alpine
  19. ports:
  20. - "6379:6379"
  21. volumes:
  22. - redisdata:/data
  23. healthcheck:
  24. test: ["CMD", "redis-cli", "ping"]
  25. interval: 5s
  26. retries: 5
  27. minio:
  28. image: minio/minio:latest
  29. command: server /data --console-address ":9001"
  30. ports:
  31. - "9000:9000"
  32. - "9001:9001"
  33. volumes:
  34. - miniodata:/data
  35. environment:
  36. MINIO_ROOT_USER: photoplaces
  37. MINIO_ROOT_PASSWORD: photoplaces_dev
  38. healthcheck:
  39. test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
  40. interval: 5s
  41. retries: 5
  42. backend:
  43. build:
  44. context: ./backend
  45. dockerfile: Dockerfile
  46. ports:
  47. - "8080:8080"
  48. environment:
  49. APP_ENV: development
  50. DATABASE_URL: postgres://photoplaces:photoplaces_dev@postgres:5432/photoplaces?sslmode=disable
  51. REDIS_URL: redis://redis:6379/0
  52. S3_ENDPOINT: http://minio:9000
  53. S3_ACCESS_KEY: photoplaces
  54. S3_SECRET_KEY: photoplaces_dev
  55. S3_BUCKET: photoplaces
  56. JWT_SECRET: dev-secret-change-in-production
  57. CLOUDPAYMENTS_PUBLIC_ID: ""
  58. CLOUDPAYMENTS_API_SECRET: ""
  59. depends_on:
  60. postgres:
  61. condition: service_healthy
  62. redis:
  63. condition: service_healthy
  64. minio:
  65. condition: service_healthy
  66. volumes:
  67. - ./backend:/app
  68. - backend-modules:/app/node_modules
  69. frontend:
  70. build:
  71. context: ./frontend
  72. dockerfile: Dockerfile
  73. ports:
  74. - "3000:3000"
  75. environment:
  76. NEXT_PUBLIC_API_URL: http://localhost:8080/api/v1
  77. NEXT_PUBLIC_MAP_PROVIDER: yandex
  78. NEXT_PUBLIC_YANDEX_MAPS_API_KEY: ""
  79. depends_on:
  80. - backend
  81. volumes:
  82. - ./frontend:/app
  83. - frontend-modules:/app/node_modules
  84. volumes:
  85. pgdata:
  86. redisdata:
  87. miniodata:
  88. backend-modules:
  89. frontend-modules: