services: db: image: mariadb:12.0.2 command: --max_allowed_packet=3250585600 environment: MYSQL_ROOT_PASSWORD: rootpassword # ${{secrets.MYSQL_ROOT_PASSWORD}} MYSQL_DATABASE: camera # ${{secrets.MYSQL_DATABASE}} MYSQL_USER: camera # ${{secrets.MYSQL_USER}} MYSQL_PASSWORD: camerapassword # ${{secrets.MYSQL_PASSWORD}} volumes: - mariadb:/var/lib/mysql healthcheck: test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "-uroot", "-prootpassword"] interval: 10s timeout: 5s start_period: 30s retries: 5 web: image: git.hamburg.ccc.de/ccchh/sunders/web:latest environment: MYSQL_HOST: db MYSQL_DB: camera # ${{secrets.MYSQL_DATABASE}} CAMERA_SELECT_USER: camera_select # ${{secrets.CAMERA_SELECT_USER}} CAMERA_SELECT_USER_PASSWORD: camera_selectpassword # ${{secrets.CAMERA_SELECT_USER_PASSWORD}} DEFAULT_ZOOM: 12 DEFAULT_LAT: 0 DEFAULT_LON: 0 DEFAULT_LANGUAGE: en IMPRESSUM_URL: https://hamburg.ccc.de/imprint/ ports: - "8081:80" depends_on: data_handler: condition: service_started # all the way zoomed out, with hamburg at the center, at least one camera should be returned healthcheck: test: > ["CMD", "curl -s 'http://localhost/camera.php?bbox=-92.52991540527346,30.683278176916133,131.7689595947266,72.87186315234298&zoom=4&width=2552&height=867' | grep '^\[.+\]$'"] interval: 10s timeout: 5s start_period: 30s retries: 5 data_handler: image: git.hamburg.ccc.de/ccchh/sunders/data_handler:latest environment: MYSQL_HOST: db MYSQL_DB: camera # ${{secrets.MYSQL_DATABASE}} MYSQL_USER: root # ${{secrets.MYSQL_USER}} MYSQL_PASSWORD: rootpassword # ${{secrets.MYSQL_ROOT_PASSWORD}} CAMERA_USER: camera # ${{secrets.CAMERA_USER}} CAMERA_USER_PASSWORD: camerapassword # ${{secrets.CAMERA_USER_PASSWORD}} CAMERA_SELECT_USER: camera_select # ${{secrets.CAMERA_SELECT_USER}} CAMERA_SELECT_USER_PASSWORD: camera_selectpassword # ${{secrets.CAMERA_SELECT_USER_PASSWORD}} depends_on: db: condition: service_healthy restart: true # if the latest `update_camera_*.log` contains "error", fail the healthcheck healthcheck: test: ["CMD", "sh", "-c", "ls /var/log | grep '^update_camera_' | xargs -I {} sh -c 'grep -q error /var/log/{} || exit 0; exit 1'"] interval: 10s timeout: 5s start_period: 30s retries: 5 volumes: mariadb: