docker-compose.yml 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. services:
  2. db:
  3. image: mariadb:10.11
  4. environment:
  5. MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
  6. MYSQL_DATABASE: ${MYSQL_DATABASE}
  7. MYSQL_USER: ${MYSQL_USER}
  8. MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  9. volumes:
  10. - db_data:/var/lib/mysql
  11. restart: unless-stopped
  12. ports:
  13. - "3306:3306"
  14. healthcheck:
  15. test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uscraper", "-pscr@perpass"]
  16. interval: 10s
  17. timeout: 5s
  18. retries: 10
  19. adminer:
  20. image: adminer
  21. ports:
  22. - "9980:8080"
  23. depends_on:
  24. - db
  25. restart: unless-stopped
  26. scraper:
  27. build: .
  28. environment:
  29. MYSQL_HOST: db
  30. MYSQL_PORT: "3306"
  31. MYSQL_DB: ${MYSQL_DATABASE}
  32. MYSQL_USER: ${MYSQL_USER}
  33. MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  34. # If set, the runner loops. Minutes between runs:
  35. SCRAPE_EVERY_MINUTES: "720"
  36. COUNCIL_WHITELIST: "Hobart City Council,Launceston City Council,Clarence City Council"
  37. GOOGLE_MAPS_API_KEY: ${GOOGLE_MAPS_API_KEY}
  38. DOWNLOAD_ATTACHMENTS: "1"
  39. DOWNLOAD_DIR: /downloads
  40. LOOKUP_URL: ${LOOKUP_URL}
  41. LOOKUP_THROTTLE_MS: ${LOOKUP_THROTTLE_MS:-150}
  42. volumes:
  43. - ./scrapers:/app/scrapers:ro
  44. - ./downloads:/downloads
  45. - ./lib:/app/lib:ro
  46. depends_on:
  47. db:
  48. condition: service_healthy
  49. # Default runs all once and exits. To loop, set SCRAPE_EVERY_MINUTES env above.
  50. command: ["/app/entrypoint.sh"]
  51. restart: unless-stopped
  52. web:
  53. build: ./web
  54. image: councils-web:latest
  55. volumes:
  56. - ./web:/var/www/html:ro
  57. - ./downloads:/srv/files:ro
  58. - ./web/000-files.conf:/etc/apache2/conf-enabled/000-files.conf:ro
  59. ports:
  60. - "9981:80"
  61. environment:
  62. MYSQL_HOST: db
  63. MYSQL_DATABASE: ${MYSQL_DATABASE}
  64. MYSQL_USER: ${MYSQL_USER}
  65. MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  66. depends_on:
  67. db:
  68. condition: service_healthy
  69. restart: unless-stopped
  70. volumes:
  71. db_data: