docker-compose.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. - tas_councils_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. # Log verbosity: debug | info (default) | warn | error
  43. LOG_LEVEL: ${LOG_LEVEL:-info}
  44. volumes:
  45. - ./scrapers:/app/scrapers:ro
  46. - ./downloads:/downloads
  47. - ./lib:/app/lib:ro
  48. depends_on:
  49. db:
  50. condition: service_healthy
  51. # Default runs all once and exits. To loop, set SCRAPE_EVERY_MINUTES env above.
  52. command: ["/app/entrypoint.sh"]
  53. restart: unless-stopped
  54. web:
  55. build: ./web
  56. image: councils-web:latest
  57. volumes:
  58. - ./web:/var/www/html:ro
  59. - ./downloads:/srv/files:ro
  60. - ./web/000-files.conf:/etc/apache2/conf-enabled/000-files.conf:ro
  61. ports:
  62. - "9981:80"
  63. environment:
  64. MYSQL_HOST: db
  65. MYSQL_DATABASE: ${MYSQL_DATABASE}
  66. MYSQL_USER: ${MYSQL_USER}
  67. MYSQL_PASSWORD: ${MYSQL_PASSWORD}
  68. depends_on:
  69. db:
  70. condition: service_healthy
  71. restart: unless-stopped
  72. volumes:
  73. tas_councils_db_data:
  74. external: true