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