docker-compose.dev.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. NODE_ENV: ${NODE_ENV}
  52. FRONTEND_URL: https://dev-vid.k9tech.space
  53. ports: []
  54. depends_on:
  55. postgres-dev:
  56. condition: service_healthy
  57. volumes:
  58. - uploads_dev:/app/uploads
  59. healthcheck:
  60. test: ['CMD-SHELL', 'wget -qO- http://localhost:3001/api/health || exit 0']
  61. interval: 10s
  62. timeout: 5s
  63. retries: 5
  64. worker-dev:
  65. build:
  66. context: .
  67. dockerfile: Dockerfile.api
  68. container_name: vidreview-worker-dev
  69. command: node src/worker/index.js
  70. env_file:
  71. - .env.dev
  72. environment:
  73. NODE_ENV: ${NODE_ENV}
  74. UPLOAD_DIR: /app/uploads
  75. POLL_INTERVAL_MS: ${POLL_INTERVAL_MS}
  76. WORKER_CONCURRENCY: ${WORKER_CONCURRENCY}
  77. ENCODER: ${ENCODER}
  78. depends_on:
  79. postgres-dev:
  80. condition: service_healthy
  81. volumes:
  82. - uploads_dev:/app/uploads
  83. restart: unless-stopped
  84. caddy-dev:
  85. image: caddy:2-alpine
  86. container_name: vidreview-caddy-dev
  87. ports:
  88. - "8083:8080"
  89. volumes:
  90. - ./Caddyfile.dev:/etc/caddy/Caddyfile:ro
  91. - uploads_dev:/app/uploads
  92. - caddy_data_dev:/data
  93. - caddy_config_dev:/config
  94. depends_on:
  95. - api-dev
  96. - frontend-dev
  97. frontend-dev:
  98. build:
  99. context: .
  100. dockerfile: Dockerfile.frontend
  101. args:
  102. NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
  103. container_name: vidreview-frontend-dev
  104. env_file:
  105. - .env.dev
  106. environment:
  107. NEXT_PUBLIC_API_URL: https://dev-vid.k9tech.space
  108. NODE_ENV: ${NODE_ENV}
  109. expose:
  110. - "3000"
  111. depends_on:
  112. api-dev:
  113. condition: service_healthy
  114. volumes:
  115. postgres_data_dev:
  116. uploads_dev:
  117. seed_output_dev:
  118. caddy_data_dev:
  119. caddy_config_dev: