forked from kamba4/sunders
		
	healthcheck-asohh #25
					 2 changed files with 99 additions and 0 deletions
				
			
		
							
								
								
									
										72
									
								
								docker-compose-dev.yml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								docker-compose-dev.yml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,72 @@
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  db:
 | 
				
			||||||
 | 
					    image: mariadb:12.0.2
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    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:Z
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    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"
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - ./web/www/sunders:/var/www/html:Z
 | 
				
			||||||
 | 
					    depends_on:
 | 
				
			||||||
 | 
					      db:
 | 
				
			||||||
 | 
					        condition: service_started
 | 
				
			||||||
 | 
					    # all the way zoomed out, with hamburg at the center, at least one camera should be returned
 | 
				
			||||||
 | 
					    healthcheck:
 | 
				
			||||||
 | 
					      test: ["CMD", "curl", "-f", "http://localhost/sync-state.php"]
 | 
				
			||||||
 | 
					      interval: 10s
 | 
				
			||||||
 | 
					      timeout: 5s
 | 
				
			||||||
 | 
					      retries: 5
 | 
				
			||||||
 | 
					      start_period: 10s
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  data_handler:
 | 
				
			||||||
 | 
					    image: git.hamburg.ccc.de/ccchh/sunders/data_handler:latest
 | 
				
			||||||
 | 
					    restart: unless-stopped
 | 
				
			||||||
 | 
					    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
 | 
				
			||||||
 | 
					      retries: 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					volumes:
 | 
				
			||||||
 | 
					  mariadb:
 | 
				
			||||||
							
								
								
									
										27
									
								
								web/www/sunders/sync-state.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								web/www/sunders/sync-state.php
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,27 @@
 | 
				
			||||||
 | 
					<?php
 | 
				
			||||||
 | 
					  error_reporting(0);
 | 
				
			||||||
 | 
					  include $pathToWebFolder.'config.php';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Connect to database */
 | 
				
			||||||
 | 
					  $mysqli = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
 | 
				
			||||||
 | 
					  if($mysqli->connect_errno) {
 | 
				
			||||||
 | 
					    header('Content-type: application/json');
 | 
				
			||||||
 | 
					    $result = '{"error":"error while connecting to db : ' . $mysqli->error . '"}';
 | 
				
			||||||
 | 
					    echo $result;
 | 
				
			||||||
 | 
					    exit;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $syncstate_querry = $mysqli->query("SELECT * FROM sync_state WHERE k = 'sequenceNumber'");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  while($row = $syncstate_querry->fetch_assoc()) {
 | 
				
			||||||
 | 
					      $syncstate = array('sequenceNumber' => $row["v"]);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $result = json_encode($syncstate);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  $mysqli->close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  header('Content-type: application/json; Charset : utf-8');
 | 
				
			||||||
 | 
					  echo $result;
 | 
				
			||||||
 | 
					?>
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue