{ "probe": { "app": "sparkyfitness", "containers": [ { "diff_added": 11, "diff_benign_db_touches": [], "diff_data_dirs": [], "diff_other_dirs": [ { "added": [], "changed_count": 3, "db_signature": false, "dir": "/", "files": [ "etc", "run", "var" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/etc", "files": [ "nginx" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/var", "files": [ "cache" ] } ], "diff_token_dirs": [], "diff_total": 19, "diff_unresolved": [], "exit": 0, "gid": 0, "health": "healthy", "image": "codewithcj/sparkyfitness:v0.17.3", "mounts": [], "name": "sparkyfitness", "restarts": null, "status": "running", "uid": 0 }, { "diff_added": 2, "diff_benign_db_touches": [], "diff_data_dirs": [], "diff_other_dirs": [ { "added": [], "changed_count": 1, "db_signature": false, "dir": "/", "files": [ "run" ] } ], "diff_token_dirs": [], "diff_total": 4, "diff_unresolved": [], "exit": 0, "gid": 70, "health": "healthy", "image": "postgres:15-alpine", "mounts": [ { "class": "named-declared", "files": 1815, "name": "volgate-sparkyfitness_sparkyfitness_db_data", "sample": [ "pgdata/postmaster.opts", "pgdata/postgresql.conf", "pgdata/postgresql.auto.conf", "pgdata/pg_ident.conf", "pgdata/pg_hba.conf", "pgdata/postmaster.pid", "pgdata/PG_VERSION", "pgdata/base/1/826", "pgdata/base/1/2996", "pgdata/base/1/3764", "pgdata/base/1/2610_fsm", "pgdata/base/1/3603_fsm", "pgdata/base/1/1249_vm", "pgdata/base/1/3600_fsm", "pgdata/base/1/13506_vm", "pgdata/base/1/3602", "pgdata/base/1/6228", "pgdata/base/1/4174", "pgdata/base/1/4157", "pgdata/base/1/4146", "pgdata/base/1/2611", "pgdata/base/1/2657", "pgdata/base/1/3079_vm", "pgdata/base/1/1247_vm", "pgdata/base/1/13501_fsm", "pgdata/base/1/1259", "pgdata/base/1/3601_fsm", "pgdata/base/1/1417", "pgdata/base/1/4155", "pgdata/base/1/2668", "pgdata/base/1/13491_fsm", "pgdata/base/1/2831", "pgdata/base/1/2841", "pgdata/base/1/3607", "pgdata/base/1/2836", "pgdata/base/1/1255_fsm", "pgdata/base/1/2615_vm", "pgdata/base/1/3575", "pgdata/base/1/2605_vm", "pgdata/base/1/2670" ], "source": "/var/lib/docker/volumes/volgate-sparkyfitness_sparkyfitness_db_data/_data", "target": "/var/lib/postgresql/data", "writable_by_app": "yes" } ], "name": "sparkyfitness-db", "restarts": null, "status": "running", "uid": 70 }, { "diff_added": 392, "diff_benign_db_touches": [], "diff_data_dirs": [], "diff_other_dirs": [ { "added": [], "changed_count": 1, "db_signature": false, "dir": "/", "files": [ "app" ] }, { "added": [], "changed_count": 1, "db_signature": false, "dir": "/app", "files": [ "SparkyFitnessServer" ] }, { "added": [ "backup", "temp_uploads", "uploads" ], "changed_count": 0, "db_signature": false, "dir": "/app/SparkyFitnessServer", "files": [ "backup", "temp_uploads", "uploads" ] } ], "diff_token_dirs": [], "diff_total": 395, "diff_unresolved": [], "exit": 0, "gid": 0, "health": "healthy", "image": "codewithcj/sparkyfitness_server:v0.17.3", "mounts": [ { "class": "named-declared", "files": 0, "name": "volgate-sparkyfitness_sparkyfitness_uploads", "sample": [], "source": "/var/lib/docker/volumes/volgate-sparkyfitness_sparkyfitness_uploads/_data", "target": "/app/SparkyFitnessServer/uploads", "writable_by_app": "yes" }, { "class": "named-declared", "files": 0, "name": "volgate-sparkyfitness_sparkyfitness_backup", "sample": [], "source": "/var/lib/docker/volumes/volgate-sparkyfitness_sparkyfitness_backup/_data", "target": "/app/SparkyFitnessServer/backup", "writable_by_app": "yes" } ], "name": "sparkyfitness-server", "restarts": null, "status": "running", "uid": 0 } ], "declared_volumes": [ "sparkyfitness_backup", "sparkyfitness_db_data", "sparkyfitness_uploads" ], "env_keys": [ "API_ENCRYPTION_KEY", "APP_DB_PASSWORD", "BETTER_AUTH_SECRET", "DB_PASSWORD", "DOMAIN", "HDD_PATH", "IMPORT_PATH", "SUBDOMAIN", "TZ", "USERDATA_PATH" ], "exercise": [], "ports": [] }, "reasons": [ "sparkyfitness-server: this container's mounts are all empty while it created entries in ['/app/SparkyFitnessServer'] \u2014 benign when a sibling container holds the state, worth a look when none does", "sparkyfitness-server: declared volume /app/SparkyFitnessServer/uploads is EMPTY", "sparkyfitness-server: declared volume /app/SparkyFitnessServer/backup is EMPTY" ], "verdict": "CLEAN", "verdict_recomputed_by": "check-volume-persistence.py classify() at final rules" }