docker-compose.yml 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # docker-compose.yml
  2. version: '3.8'
  3. services:
  4. db:
  5. image: postgres:15
  6. container_name: music_db
  7. environment:
  8. POSTGRES_DB: music_db
  9. POSTGRES_USER: postgres
  10. POSTGRES_PASSWORD: postgres
  11. ports:
  12. - "5432:5432"
  13. volumes:
  14. - postgres_data:/var/lib/postgresql/data
  15. - ./init.sql:/docker-entrypoint-initdb.d/init.sql
  16. networks:
  17. - music_network
  18. healthcheck:
  19. test: ["CMD-SHELL", "pg_isready -U postgres"]
  20. interval: 10s
  21. timeout: 5s
  22. retries: 5
  23. web:
  24. build: .
  25. container_name: music_web
  26. command: >
  27. sh -c "python manage.py migrate &&
  28. python manage.py loaddata fixtures/initial_data.json &&
  29. python manage.py runserver 0.0.0.0:8000"
  30. volumes:
  31. - .:/app
  32. ports:
  33. - "8000:8000"
  34. environment:
  35. - DB_NAME=music_db
  36. - DB_USER=postgres
  37. - DB_PASSWORD=postgres
  38. - DB_HOST=db
  39. - DB_PORT=5432
  40. depends_on:
  41. db:
  42. condition: service_healthy
  43. networks:
  44. - music_network
  45. volumes:
  46. postgres_data:
  47. networks:
  48. music_network:
  49. driver: bridge