docker-compose.dev.yml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. services:
  2. postgres-dev:
  3. image: postgres:16-alpine
  4. container_name: vidreview-db-dev
  5. environment:
  6. POSTGRES_USER: ${POSTGRES_USER}
  7. POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
  8. POSTGRES_DB: ${POSTGRES_DB}
  9. ports:
  10. - "5433:5432"
  11. volumes:
  12. - postgres_data_dev:/var/lib/postgresql/data
  13. healthcheck:
  14. test: ['CMD-SHELL', 'pg_isready -U vidreview_dev']
  15. interval: 5s
  16. timeout: 5s
  17. retries: 5
  18. init-dev:
  19. build:
  20. context: .
  21. dockerfile: Dockerfile.api
  22. container_name: vidreview-init-dev
  23. entrypoint: ['bash', '/scripts/init-admin.sh']
  24. environment:
  25. DB_HOST: postgres-dev
  26. DB_NAME: ${POSTGRES_DB}
  27. DB_USER: ${POSTGRES_USER}
  28. DB_PASS: ${POSTGRES_PASSWORD}
  29. API_CONTAINER: api-dev
  30. DB_CONTAINER: vidreview-db-dev
  31. OUTPUT_DIR: /seed-output
  32. ADMIN_EMAIL: ${ADMIN_EMAIL}
  33. ADMIN_NAME: ${ADMIN_NAME}
  34. volumes:
  35. - ./seed-output-dev:/seed-output
  36. - ./scripts:/scripts
  37. depends_on:
  38. postgres-dev:
  39. condition: service_healthy
  40. api-dev:
  41. condition: service_healthy
  42. restart: 'no'
  43. api-dev:
  44. build:
  45. context: .
  46. dockerfile: Dockerfile.api
  47. container_name: vidreview-api-dev
  48. env_file:
  49. - .env.dev
  50. environment:
  51. JWT_SECRET: ${JWT_SECRET}
  52. JWT_EXPIRES_IN: ${JWT_EXPIRES_IN}
  53. API_PORT: 3001
  54. NODE_ENV: ${NODE_ENV}
  55. UPLOAD_DIR: /app/uploads
  56. MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB}
  57. FRONTEND_URL: https://dev-vid.k9tech.space
  58. RESEND_API_KEY: ${RESEND_API_KEY}
  59. ports: []
  60. depends_on:
  61. postgres-dev:
  62. condition: service_healthy
  63. volumes:
  64. - uploads_dev:/app/uploads
  65. healthcheck:
  66. test: ['CMD-SHELL', 'wget -qO- http://localhost:3001/api/health || exit 0']
  67. interval: 10s
  68. timeout: 5s
  69. retries: 5
  70. worker-dev:
  71. build:
  72. context: .
  73. dockerfile: Dockerfile.api
  74. container_name: vidreview-worker-dev
  75. command: node src/worker/index.js
  76. env_file:
  77. - .env.dev
  78. environment:
  79. NODE_ENV: ${NODE_ENV}
  80. UPLOAD_DIR: /app/uploads
  81. POLL_INTERVAL_MS: ${POLL_INTERVAL_MS}
  82. WORKER_CONCURRENCY: ${WORKER_CONCURRENCY}
  83. ENCODER: ${ENCODER}
  84. depends_on:
  85. postgres-dev:
  86. condition: service_healthy
  87. volumes:
  88. - uploads_dev:/app/uploads
  89. restart: unless-stopped
  90. caddy-dev:
  91. image: caddy:2-alpine
  92. container_name: vidreview-caddy-dev
  93. ports:
  94. - "8083:8080"
  95. volumes:
  96. - ./Caddyfile.dev:/etc/caddy/Caddyfile:ro
  97. - uploads_dev:/app/uploads
  98. - caddy_data_dev:/data
  99. - caddy_config_dev:/config
  100. depends_on:
  101. - api-dev
  102. - frontend-dev
  103. frontend-dev:
  104. build:
  105. context: .
  106. dockerfile: Dockerfile.frontend
  107. args:
  108. NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
  109. container_name: vidreview-frontend-dev
  110. env_file:
  111. - .env.dev
  112. environment:
  113. NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
  114. NODE_ENV: ${NODE_ENV}
  115. expose:
  116. - "3000"
  117. depends_on:
  118. api-dev:
  119. condition: service_healthy
  120. volumes:
  121. postgres_data_dev:
  122. uploads_dev:
  123. seed_output_dev:
  124. caddy_data_dev:
  125. caddy_config_dev: